제출 #576195

#제출 시각아이디문제언어결과실행 시간메모리
576195SlavicG식물 비교 (IOI20_plants)C++17
0 / 100
1 ms312 KiB
#include "bits/stdc++.h" #include "plants.h" #define ll long long #define sz(a) (int)a.size() #define pb push_back #define all(a) a.begin(),a.end() #define rall(a) a.rbegin(),a.rend() #define forn(i, n) for(int i=0;i < n; ++i) using namespace std; const int N = 5000; int ans[N][N]; void init(int k, std::vector<int> r) { int n = sz(r); vector<bool> vis(n, false); while(true) { bool br = true; forn(i, n) if(!vis[i] && r[i] == 0) br = false; if(br) break; for(int i = 0; i < n; ++i) { if(!vis[i] && r[i] == 0) { for(int j = 0; j < n; ++j) { if(r[j] || vis[j]) { ans[i][j] = 1; ans[j][i] = -1; } } } } for(int i = 0; i < n; ++i) { if(!vis[i] && r[i] == 0) { int cur = i; vis[i] = true; for(int f = 0; f < k; ++f) { cur = (cur - 1 + n) % n; if(!vis[cur]) r[cur] = max(0, r[cur] - 1); } } } } } int compare_plants(int x, int y) { return ans[x][y]; }
#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...