# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
393010 | phathnv | Comparing Plants (IOI20_plants) | C++11 | 4091 ms | 2097156 KiB |
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 <bits/stdc++.h>
#include "plants.h"
using namespace std;
vector<vector<bool>> d;
void init(int k, std::vector<int> r) {
int n = r.size();
vector<int> p(n, -1);
d.assign(n, vector<bool>(n, 0));
for(int val = n - 1; val >= 0; val--){
for(int i = 0; i < n; i++){
if (r[i] || r[i] == -1)
continue;
bool ok = 1;
for(int j = 1; j < k; j++)
ok &= (r[(i - j + n) % n] != 0);
if (ok){
p[i] = val;
for(int j = 1; j < k; j++){
if (r[(i - j + n) % n] != -1){
r[(i - j + n) % n]--;
d[i][(i - j + n) % n] = 1;
}
if (r[(i + j) % n] != -1)
d[i][(i + j) % n] = 1;
}
r[i] = -1;
break;
}
}
}
for(int k = 0; k < n; k++)
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
d[i][j] = d[i][j] || (d[i][k] && d[k][j]);
return;
}
int compare_plants(int x, int y) {
if (d[x][y])
return 1;
if (d[y][x])
return -1;
return 0;
}
Compilation message (stderr)
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |