제출 #385942

#제출 시각아이디문제언어결과실행 시간메모리
385942i_am_noob식물 비교 (IOI20_plants)C++17
0 / 100
2 ms492 KiB
#include<bits/stdc++.h> #include "plants.h" using namespace std; #define ll long long //#define int ll #define rep(n) rep1(i,n) #define rep1(i,n) rep2(i,0,n) #define rep2(i,a,b) for(int i=a; i<(b); ++i) #define rep3(i,a,b) for(int i=a; i>=(b); --i) #define pb push_back #define sz(a) ((int)a.size()) #define all(a) a.begin(),a.end() #define pii pair<int,int> #define inf 0x3f3f3f3f3f3f3f3f #define pow2(x) (1ll<<(x)) #ifdef i_am_noob #define bug(...) cerr << "#" << __LINE__ << " " << #__VA_ARGS__ << "- ", _do(__VA_ARGS__) template<typename T> void _do(T x){cerr << x << endl;} template<typename T, typename ...S> void _do(T x, S... y){cerr << x << ", ";_do(y...);} #else #define bug(...) 49 #endif const int maxn=200005; int n,k,sum[maxn],a[maxn],minn[4*maxn],minid[4*maxn]; vector<int> r; void init(int _k, vector<int> _r){ k=_k; r=_r; n=sz(r); rep(n) sum[i+1]=sum[i]+r[i]; if(n<5005){ bool flag; rep3(i,n-1,0){ flag=0; rep1(j,n) if(r[j]==0){ a[j]=i; rep1(ii,k-1) r[(j-ii-1+n)%n]--; r[j]=n; flag=1; break; } assert(flag); } } } int compare_plants(int x, int y) { if(k==2){ if(sum[y]-sum[x]==y-x) return -1; if(sum[y]-sum[x]==0) return 1; if(sum[n]-sum[y]+sum[x]==n-y+x) return 1; if(sum[n]-sum[y]+sum[x]==0) return -1; return 0; } return a[x]>a[y]?1:-1; }
#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...