This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <vector>
#include <queue>
#include "train.h"
using namespace std;
int n, m;
vector<int> graph[5005];
int f[5005];
//int freq[5005][5005];
bool vis[5005][5005];
bool fb[5005][5005];
bool a[5005], r[5005];
bool dfs(int node, int val)
{
if (!val) return true;
if (vis[node][val]) return fb[node][val];
vis[node][val] = true;
bool cur;
if (a[node]) {
cur = false;
for (int i = 0; i < graph[node].size(); i++) {
int nxt = graph[node][i];
if (dfs(nxt, val - (int)r[node])) {
cur = true; break;
}
}
} else {
cur = true;
for (int i = 0; i < graph[node].size(); i++) {
int nxt = graph[node][i];
if (!dfs(nxt, val - (int)r[node])) {
cur = false; break;
}
}
}
return fb[node][val] = cur;
}
vector<int> who_wins(vector<int> A, vector<int> R, vector<int> u, vector<int> v) {
n = (int)A.size();
m = (int)u.size();
for (int i = 0; i < m; i++) {
graph[u[i]].push_back(v[i]);
}
for (int i = 0; i < n; i++) a[i] = A[i], r[i] = R[i];
for (int v = 1; v <= n + 1; v++) {
for (int i = 0; i < n; i++) {
dfs(i, v);
}
}
vector<int> ans(n);
for (int i = 0; i < n; i++) {
//fprintf(stderr, "%d ", f[i]);
ans[i] = (int)fb[i][n+1];
}
return ans;
}
Compilation message (stderr)
train.cpp: In function 'bool dfs(int, int)':
train.cpp:25:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
25 | for (int i = 0; i < graph[node].size(); i++) {
| ~~^~~~~~~~~~~~~~~~~~~~
train.cpp:33:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
33 | for (int i = 0; i < graph[node].size(); i++) {
| ~~^~~~~~~~~~~~~~~~~~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |