Submission #1242836

#TimeUsernameProblemLanguageResultExecution timeMemory
1242836Joshua_AnderssonComparing Plants (IOI20_plants)C++20
14 / 100
4094 ms5704 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; const ll inf = 1e18; typedef vector<ll> vi; typedef vector<vi> vvi; typedef pair<ll, ll> p2; #define rep(i, high) for (ll i = 0; i < (high); i++) #define repp(i, lo, high) for (ll i = (lo); i < (high); i++) #define repe(i, container) for (auto& i : container) #define sz(x) ((ll)(x).size()) #define all(x) begin(x), end(x) vi real_heights; void init(int k, std::vector<int> r) { int n = sz(r); real_heights.resize(n); auto norm = [&](int x) { if (x < 0) x %= n, x += n; if (x >= n) return x % n; return x; }; rep(i, n) { rep(j, n) { if (r[j] != 0) continue; bool good = 1; for (int l = j - k + 1; l < j; l++) { if (r[norm(l)]==0) { good = 0; break; } } if (good) { real_heights[j] = n - i-1; for (int l = j - k + 1; l <= j; l++) { r[norm(l)]--; } break; } } } return; } int compare_plants(int x, int y) { if (real_heights[x] > real_heights[y]) return 1; return -1; } #if _LOCAL static int n, k, q; static std::vector<int> r; static std::vector<int> x; static std::vector<int> y; static std::vector<int> answer; int main() { assert(scanf("%d%d%d", &n, &k, &q) == 3); r.resize(n); answer.resize(q); for (int i = 0; i < n; i++) { int value; assert(scanf("%d", &value) == 1); r[i] = value; } x.resize(q); y.resize(q); for (int i = 0; i < q; i++) { assert(scanf("%d%d", &x[i], &y[i]) == 2); } fclose(stdin); init(k, r); for (int i = 0; i < q; i++) { answer[i] = compare_plants(x[i], y[i]); } for (int i = 0; i < q; i++) { printf("%d\n", answer[i]); } fclose(stdout); return 0; } #endif
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...