Submission #835988

#TimeUsernameProblemLanguageResultExecution timeMemory
835988maomao90Comparing Plants (IOI20_plants)C++17
14 / 100
4038 ms10532 KiB
// I can do all things through Christ who strengthens me // Philippians 4:13 #include "plants.h" #include <bits/stdc++.h> using namespace std; #define REP(i, j, k) for (int i = j; i < (k); i++) #define RREP(i, j, k) for (int i = j; i >= (k); i--) template <class T> inline bool mnto(T &a, const T b) {return a > b ? a = b, 1 : 0;} template <class T> inline bool mxto(T &a, const T b) {return a < b ? a = b, 1 : 0;} typedef long long ll; typedef long double ld; #define FI first #define SE second typedef pair<int, int> ii; typedef pair<ll, ll> pll; #define ALL(x) x.begin(), x.end() #define SZ(x) (int) x.size() #define pb push_back typedef vector<int> vi; typedef vector<ll> vll; typedef vector<ii> vii; typedef tuple<int, int, int> iii; typedef vector<iii> viii; #ifndef DEBUG #define cerr if (0) cerr #endif const int INF = 1000000005; const ll LINF = 1000000000000000005; const int MAXN = 200005; int n, k; vi r; int bad[MAXN]; bool vis[MAXN]; int h[MAXN]; void init(int _k, vi _r) { k = _k; r = _r; n = SZ(r); REP (i, 0, n) { if (r[i] == k - 1) { REP (j, i + 1, i + k) { bad[j % n]++; } } } REP (z, 0, n) { int id = -1; REP (i, 0, n) { if (vis[i]) { continue; } if (r[i] == k - 1 && !bad[i]) { id = i; break; } } h[id] = z; vis[id] = 1; REP (j, id + 1, id + k) { bad[j % n]--; } RREP (ti, id - 1, id - k + 1) { int i = (ti + n) % n; r[i]++; if (r[i] == k - 1) { REP (j, i + 1, i + k) { bad[j % n]++; } } } } return; } int compare_plants(int x, int y) { return h[x] > h[y] ? 1 : -1; }
#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...