Submission #720752

#TimeUsernameProblemLanguageResultExecution timeMemory
720752bin9638Comparing Plants (IOI20_plants)C++17
0 / 100
1 ms312 KiB
#include <bits/stdc++.h> #ifndef SKY #include "plants.h" #endif // SKY using namespace std; #define N 400010 #define ll long long #define fs first #define sc second #define ii pair<ll,int> #define pb push_back int k,n,sum[N],a[N]; void init(int cc, vector<int> r) { k=cc; n=r.size(); for(int i=0;i<n;i++) { a[i]=r[i]; a[i+n]=r[i]; } for(int i=1;i<n*2;i++) sum[i]+=a[i]+sum[i-1]; //cout<<sum[n-1]<<endl; } int compare_plants(int x, int y) { //cout<<x<<" "<<y<<endl; if(x<y) { //cout<<sum[3]<<" "<<(x>0 ? sum[x-1] : 0)<<endl; if(sum[y-1]-(x>0 ? sum[x-1] : 0)==0) return 1; if(sum[y-1]-(x>0 ? sum[x-1] : 0)==y-x) return -1; if(sum[x+n-1]-(y>0 ? sum[y-1] : 0)==0) return -1; if(sum[x+n-1]-(y>0 ? sum[y-1] : 0)==(x+n)-y) return 1; }else { swap(x,y); if(sum[y-1]-(x>0 ? sum[x-1] : 0)==0) return -1; if(sum[y-1]-(x>0 ? sum[x-1] : 0)==y-x) return 1; if(sum[x+n-1]-(y>0 ? sum[y-1] : 0)==0) return 1; if(sum[x+n-1]-(y>0 ? sum[y-1] : 0)==(x+n)-y) 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...