제출 #1320176

#제출 시각아이디문제언어결과실행 시간메모리
1320176dibamboo23Comparing Plants (IOI20_plants)C++20
5 / 100
51 ms9016 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]; int p0[N]; void init(int k, vector<int>inr) { n=(int)inr.sz; set<int>st; for(int i=0;i<n;i++)r[i]=r[i+n]=inr[i],st.insert(r[i]); assert((int)st.sz!=1); // 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]<<" "<<p0[i]<<"\n"; return; } // 0 - > // 1 - < int compare_plants(int x, int y) { int res=0; 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=-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...