# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1023170 | 2024-07-14T11:38:57 Z | Mr_Ph | 식물 비교 (IOI20_plants) | C++17 | 0 ms | 0 KB |
#include "plants.h" #include <bits/stdc++.h> // #include "grader.cpp" using namespace std; vector<int>pref; int N; int get(int l,int r) { if(l<=r) return pref[r]-(l?pref[l-1]:0); else return pref[N-1]-(l?pref[l-1]:0)+pref[r]; } void init(int k, std::vector<int> r) { N=r.size(); pref.resize(N); pref[0]=r[0]; for(int i=1;i<N;i++) pref[i]=pref[i-1]+r[i]; } int compare_plants(int x, int y) { int l=x,r=y-1; int r1=(x==0?N-1:x-1),l1=y; if(get(l,r)==0)return 1; if(get(l1,r1)==(r1>=l1?r1-l1+1:n-l1+r1+1))return 1; if(get(l,r)==(r-l)+1)return -1; if(get(l1,r1)==0)return -1; return 0; }