제출 #1316476

#제출 시각아이디문제언어결과실행 시간메모리
1316476opeleklanos식물 비교 (IOI20_plants)C++20
14 / 100
4094 ms5808 KiB
#include <iostream> #include <vector> #include <queue> #include "plants.h" using namespace std; int k; int n; vector<int> r; vector<int> perm; void init(int k1, vector<int> r1){ k = k1; r = r1; n = r1.size(); perm.assign(n, -1); for(int i = 0; i<n; i++){ priority_queue<int, vector<int>, greater<int>> zindx; for(int j = n-k+1; j<n; j++) if(r[j] == 0) zindx.push(j); for(int j = 0; j<n; j++){ if(r[j] != 0 || perm[j] != -1) continue; while(!zindx.empty() && zindx.top() <= j+n-k) zindx.pop(); if(!zindx.empty())zindx.push(j+n); else{ for(int l = (j-k+n+1)%n; l != j; l = (l+1)%n) r[l] --; perm[j] = n-i-1; r[j] = -1; break; } } } } int compare_plants(int x, int y){ if(perm[x] > perm[y]) return 1; if(perm[x] < perm[y]) return -1; return 0; } // int main(void){ // freopen("input.txt", "r", stdin); // vector<int> r1; // int n1, k1; // cin>>n1>>k1; // r1.assign(n1, 0); // for(int i = 0; i<n1; i++){ // cin>>r1[i]; // } // init(k1, r1); // int q; cin>>q; // for(int i = 0; i<q; i++){ // int a, b; // cin>>a>>b; // cout<<compare_plants(a, b)<<endl; // } // }
#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...