# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
303248 | 2020-09-20T05:39:56 Z | daniel920712 | 식물 비교 (IOI20_plants) | C++14 | 149 ms | 20732 KB |
#include "plants.h" #include <stdio.h> #include <vector> #include <utility> #include <set> using namespace std; vector < int > all; vector < int > Next[200005]; vector < pair < int , int > > con[200005]; int N,tt=0; bool use[2000005]={0}; int Con[200005]; int what[200005]; set < int > A; set < int > B; void init(int k,vector<int> r) { int a=0,b=0,i,j,ok=0,l,t,t2,x; all=r; N=r.size(); if(k==2) tt=1; for(i=0;i<N;i++) { if(k==2) { if(r[(i+N-1)%N]!=r[i]) { b=0; a++; con[i].push_back(make_pair(a,0)); for(j=(i+1)%N;r[(j+N-1)%N]==r[i];j=(j+1)%N) { if(j==N-1) ok=1; if(r[i]==0) b--; else b++; con[j].push_back(make_pair(a,b)); } } } else { for(i=0;i<N;i++) { if(r[i]==0) { for(j=1;j<k;j++) { t=(i+j)%N; if(use[t]==0&&A.find(t)!=A.end()) { Con[t]++; if(B.find(t)!=B.end()) B.erase(t); } } B.insert(i); A.insert(i); } } for(i=0;i<N;i++) { x=*B.begin(); use[x]=1; what[x]=i; for(j=1;j<k;j++) { t=(x+j)%N; if(use[t]==0&&A.find(t)!=A.end()) { Con[t]--; if(Con[t]==0) if(B.find(t)!=B.end()) B.insert(t); } } for(j=1;j<k;j++) { t=(x-j+2*N)%N; if(use[t]==0&&A.find(t)==A.end()) { r[t]--; if(r[t]==0) { for(l=1;l<k;l++) { t2=(t+l)%N; if(use[t2]==0&&A.find(t2)!=A.end()) { Con[t2]++; if(B.find(t2)!=B.end()) B.erase(t2); } } B.insert(t); A.insert(t); } } } } } } return; } bool F(int A,int B) { if(A==B) return 1; if(use[A]) return 0; use[A]=1; for(auto i:Next[A]) if(F(i,B)) return 1; return 0; } int compare_plants(int x, int y) { int i; if(tt) { for(auto i:con[x]) { for(auto j:con[y]) { if(i.first==j.first) { if(i.second<j.second) return -1; return 1; } } } } else { if(what[x]<what[y]) return 1; else return -1; } return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 8 ms | 9728 KB | Output is correct |
2 | Correct | 7 ms | 9728 KB | Output is correct |
3 | Correct | 8 ms | 9728 KB | Output is correct |
4 | Correct | 7 ms | 9728 KB | Output is correct |
5 | Correct | 7 ms | 9728 KB | Output is correct |
6 | Correct | 73 ms | 12536 KB | Output is correct |
7 | Correct | 96 ms | 13432 KB | Output is correct |
8 | Correct | 149 ms | 20728 KB | Output is correct |
9 | Correct | 143 ms | 20728 KB | Output is correct |
10 | Correct | 148 ms | 20600 KB | Output is correct |
11 | Correct | 134 ms | 20728 KB | Output is correct |
12 | Correct | 138 ms | 20708 KB | Output is correct |
13 | Correct | 136 ms | 20708 KB | Output is correct |
14 | Correct | 135 ms | 20732 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 7 ms | 9728 KB | Output is correct |
2 | Correct | 8 ms | 9728 KB | Output is correct |
3 | Incorrect | 7 ms | 9728 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 7 ms | 9728 KB | Output is correct |
2 | Correct | 8 ms | 9728 KB | Output is correct |
3 | Incorrect | 7 ms | 9728 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 8 ms | 9728 KB | Output is correct |
2 | Correct | 7 ms | 9728 KB | Output is correct |
3 | Incorrect | 80 ms | 12792 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 8 ms | 9856 KB | Output is correct |
2 | Correct | 8 ms | 9728 KB | Output is correct |
3 | Correct | 8 ms | 9728 KB | Output is correct |
4 | Incorrect | 8 ms | 9728 KB | Output isn't correct |
5 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 8 ms | 9728 KB | Output is correct |
2 | Correct | 8 ms | 9728 KB | Output is correct |
3 | Correct | 8 ms | 9728 KB | Output is correct |
4 | Incorrect | 8 ms | 9728 KB | Output isn't correct |
5 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 8 ms | 9728 KB | Output is correct |
2 | Correct | 7 ms | 9728 KB | Output is correct |
3 | Correct | 8 ms | 9728 KB | Output is correct |
4 | Correct | 7 ms | 9728 KB | Output is correct |
5 | Correct | 7 ms | 9728 KB | Output is correct |
6 | Correct | 73 ms | 12536 KB | Output is correct |
7 | Correct | 96 ms | 13432 KB | Output is correct |
8 | Correct | 149 ms | 20728 KB | Output is correct |
9 | Correct | 143 ms | 20728 KB | Output is correct |
10 | Correct | 148 ms | 20600 KB | Output is correct |
11 | Correct | 134 ms | 20728 KB | Output is correct |
12 | Correct | 138 ms | 20708 KB | Output is correct |
13 | Correct | 136 ms | 20708 KB | Output is correct |
14 | Correct | 135 ms | 20732 KB | Output is correct |
15 | Correct | 7 ms | 9728 KB | Output is correct |
16 | Correct | 8 ms | 9728 KB | Output is correct |
17 | Incorrect | 7 ms | 9728 KB | Output isn't correct |
18 | Halted | 0 ms | 0 KB | - |