Submission #900035

#TimeUsernameProblemLanguageResultExecution timeMemory
900035nguyentunglamComparing Plants (IOI20_plants)C++17
5 / 100
66 ms11972 KiB
#include<bits/stdc++.h> #define fi first #define se second #define endl "\n" #define ii pair<int, int> using namespace std; const int N = 4e5 + 10; int s[2][N], a[N]; int n; void init (int k, vector<int> r) { n = r.size(); k--; for(int i = 1; i <= n; i++) a[i] = a[i + n] = r[i - 1]; for(int i = 1; i <= n * 2; i++) { s[0][i] = s[0][i - 1] + (a[i] == 0); s[1][i] = s[1][i - 1] + (a[i] == 1); } } int check (int l, int r) { int s0 = s[0][r - 1] - s[0][l - 1]; int s1 = s[1][r - 1] - s[1][l - 1]; if (s0 && s1) return 0; if (s0) return 1; return -1; } int compare_plants(int x, int y) { x++; y++; int tmp; tmp = check(x, y); if (tmp) return tmp; tmp = check(y, x + n); if (tmp) return -tmp; return 0; } #ifdef ngu int main() { freopen ("task.inp", "r", stdin); freopen ("task.out", "w", stdout); int n, k, q; cin >> n >> k >> q; vector<int> r(n); for(int i = 0; i < n; i++) cin >> r[i]; init(k, r); while (q--) { int x, y; cin >> x >> y; cout << compare_plants(x, y) << endl; } } #endif // ngu
#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...