Submission #721089

#TimeUsernameProblemLanguageResultExecution timeMemory
721089bin9638Comparing Plants (IOI20_plants)C++17
0 / 100
1 ms212 KiB
#include <bits/stdc++.h> #ifndef SKY #include "plants.h" #endif // SKY using namespace std; #define N 310 #define ll long long #define fs first #define sc second #define ii pair<ll,int> #define pb push_back int k,n,h[N],a[N],ktr[N][N]; bool check(int u) { if(a[u]!=0) return 0; for(int j=1;j<k;j++) if(a[(u-j+n)%n]==0) return 0; return 1; } void init(int cc, vector<int> r) { k=cc; n=r.size(); for(int i=0;i<n;i++) a[i]=r[i]; int dem=n; for(int t=0;t<n;t++) { for(int i=0;i<n;i++) if(check(i)) { h[i]=--dem; for(int j=0;j<k;j++) a[(i-j+n)%n]--; break; } } // for(int i=0;i<n;i++)cout<<h[i]<<" ";cout<<endl; for(int i=0;i<n;i++) for(int j=1;j<k;j++) if(h[i]>h[(i-j+n)%n]) ktr[i][(i-j+n)%n]=1;//,cout<<i<<" "<<(i-j+n)%n<<endl; for(int k=0;k<n;k++) for(int i=0;i<n;i++) for(int j=0;j<n;j++) ktr[i][j]|=(ktr[i][k]&ktr[k][j]); } int compare_plants(int x, int y) { if(ktr[x][y]) return 1; if(ktr[y][x]) return -1; return 0; } #ifdef SKY int main() { freopen("A.inp","r",stdin); freopen("A.out","w",stdout); ios::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL); int n,k; cin>>n>>k; vector<int>r(n); for(int i=0;i<n;i++) cin>>r[i];//,cout<<r[i]<<endl; init(k,r); int q; cin>>q; while(q--) { int x,y; cin>>x>>y; cout<<compare_plants(x,y)<<endl; } return 0; } #endif
#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...