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 "train.h"
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;
int n, m, D[5010], TD[5010], U[5010], chk[5010];
vector<int>E[5010];
vector<int> who_wins(vector<int> a, vector<int> r, vector<int> u, vector<int> v) {
n = a.size();
m = u.size();
int i, j;
for (i = 0; i < m; i++) {
E[u[i]].push_back(v[i]);
}
for (i = 0; i < n; i++) {
if (r[i] == 1)TD[i] = 1;
else TD[i] = 0;
D[i] = -1;
}
for (i = 0; i < 15000; i++) {
for (j = 0; j < n; j++) {
if (D[j] != TD[j]) chk[j] = 1, D[j]=TD[j];
else chk[j] = 0;
if (a[j])TD[j] = 0;
else TD[j] = 1e9;
}
for (j = 0; j < n; j++) {
if (chk[j]) {
for (auto &t : E[j]) {
if (a[t] == 1) {
TD[t] = max(TD[t], r[t] + D[j]);
}
else {
TD[t] = min(TD[t], r[t] + D[j]);
}
}
}
}
if (i == 9999)for (j = 0; j < n; j++)U[j] = TD[j];
}
vector<int>res(n);
for (j = 0; j < n; j++) {
if (D[j] != U[j])res[j] = 1;
else res[j] = 0;
}
return res;
}
# | 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... |