Submission #1050451

#TimeUsernameProblemLanguageResultExecution timeMemory
1050451dozerComparing Plants (IOI20_plants)C++14
14 / 100
4083 ms5996 KiB
#include "plants.h" #include <bits/stdc++.h> using namespace std; #define fileio() freopen("input.txt", "r", stdin), freopen("output.txt", "w", stdout) #define fastio() cin.tie(0), ios_base::sync_with_stdio(0) #define pb push_back #define pii pair<int, int> #define st first #define nd second #define sp " " #define endl "\n" #define LL node * 2 #define RR node * 2 + 1 #define ll long long #define MAXN 200005 const int modulo = 1e9 + 7; const ll INF = 2e18 + 7; int val[MAXN]; void init(int k, vector<int> r) { int n = r.size(); vector<int> done(n, 0); vector<int> todo; for (int i = 0; i < n; i++){ if (r[i] == 0) done[i] = -1; } int cntr = 0; int sum = 0; while(sum < n){ int start = 0; for (int i = 0; i < n; i++) if (done[i] == -1) start = i; for (int i = 0; i < n; i++){ if (done[i] != -1) continue; int nxt = i + 1; while(done[nxt] != -1) nxt = (nxt + 1) % n; if ((nxt - i + n) % n >= k) start = nxt; } val[start] = cntr++; done[start] = 1; sum++; for (int j = 1; j <= k - 1; j++){ int to = (start - j + n) % n; r[to]--; if (r[to] == 0 && done[to] == 0) done[to] = -1; } } } int compare_plants(int x, int y) { if (val[x] > val[y]) return -1; return 1; } /* 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() { fileio(); 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; } */
#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...