Submission #1222184

#TimeUsernameProblemLanguageResultExecution timeMemory
1222184kargneqComparing Plants (IOI20_plants)C++20
0 / 100
0 ms328 KiB
#include <bits/stdc++.h> using namespace std; vector<int> r; int n, k; void init(int kk, std::vector<int> rr) { r = rr; n = r.size(); k = kk; } int compare_plants(int x, int y) { // For all i, check if both x and y are in the window of i // Window: (i+1)%n, ..., (i+k-1)%n for (int i = 0; i < n; ++i) { vector<int> window; for (int j = 1; j < k; ++j) { window.push_back((i + j) % n); } bool has_x = false, has_y = false; for (int v : window) { if (v == x) has_x = true; if (v == y) has_y = true; } if (has_x && has_y) { // If r[i] == 0, all in window are shorter than i, can't compare x and y // If r[i] == k-1, all in window are taller than i, can't compare x and y // If r[i] == 1, exactly one in window is taller than i if (r[i] == 1) { // Try x is the only taller if (x != y) { // Try x is the only taller bool x_taller = true; for (int v : window) { if (v != x && v != y) x_taller = false; } if (x_taller) return 1; // Try y is the only taller bool y_taller = true; for (int v : window) { if (v != x && v != y) y_taller = false; } if (y_taller) return -1; } } } } return 0; }
#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...