Submission #1320170

#TimeUsernameProblemLanguageResultExecution timeMemory
1320170dibamboo23Comparing Plants (IOI20_plants)C++20
0 / 100
0 ms332 KiB
#include "plants.h" #include <bits/stdc++.h> #define ll long long #define sz size() #define F first #define S second using namespace std; const int N=1e6+3; int n; int r[N]; int p[N]; int s[N]; void init(int k, vector<int>inr) { n=(int)inr.sz; for(int i=0;i<n;i++)r[i]=r[i+n]=inr[i]; for(int i=0;i<n;i++)cout<<r[i]<<" "; cout<<"\n"; int cnt=0; for(int i=0;i<n*2;i++){ cnt++; if(r[i]==0)cnt=0; // a[i] > a[i+1] p[i]=cnt; } cnt=0; for(int i=n*2-1;i>=0;i--){ cnt++; if(r[i]==1)cnt=0; // a[i] < a[i+1] s[i]=cnt; } for(int i=0;i<2*n;i++)cout<<i<<": "<<p[i]<<" "<<s[i]<<"\n"; return; } // 0 - > // 1 - < int compare_plants(int x, int y) { if(x==y)return 0; bool t=0; if(x>y)t=1,swap(x,y); int res=-1; if(x+s[x]>=y||x+n-p[x+n-1]<=y)res=1; else if(y-p[n+y-1]<=x||y+s[y]>=x+n)res=0; if(res!=-1&&t)res^=1; return res; }
#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...