This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
// Ignut
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int n, k;
vector<int> r;
vector<int> cntInRow;
void init(int K, vector<int> R) {
n = R.size();
k = K;
r = R;
for (int val : R) r.push_back(val);
cntInRow.resize(2 * n);
cntInRow[2 * n - 1] = 1;
for (int i = 2 * n - 2; i >= 0; i --)
cntInRow[i] = (r[i] == r[i + 1] ? cntInRow[i + 1] + 1 : 1);
}
int compare_plants(int x, int y) {
if (k == 2) {
if (x + cntInRow[x] >= y)
return r[x] == 1 ? -1 : 1;
if (y + cntInRow[y] - n >= x)
return r[y] == 1 ? 1 : -1;
return 0;
}
if (x + k - 1 >= y) {
if (r[y] - r[x] >= y - x) return 1;
if (r[x] - r[y] >= y - x) return -1;
}
if (y + k - 1 - n >= x) {
if (r[x] - r[y] >= x + n - y) return -1;
if (r[y] - r[x] >= x + n - y) return 1;
}
return 0;
}
# | 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... |