제출 #1193473

#제출 시각아이디문제언어결과실행 시간메모리
1193473simona1230Comparing Plants (IOI20_plants)C++20
0 / 100
2 ms4936 KiB
#include "plants.h" #include <bits/stdc++.h> #define pb push_back using namespace std; int nn,p,a[200001]; int h[200001]; vector<int> v[200001]; stack<int> s; int used[200001]; void dfs(int i) { used[i]=1; for(int j=0;j<v[i].size();j++) { int nb=v[i][j]; if(!used[nb])dfs(nb); } s.push(i); } int g[200001]; void init(int k, std::vector<int> r) { p=k; nn=r.size(); int id=0; for(int i=0;i<r.size();i++) { a[i]=r[i]; if(a[i]!=1)id=i; } for(int i=0;i<nn;i++) { int x=id; int x2=id+1; if(x2==nn)x2=0; id--; if(id==-1)id=nn-1; cout<<id<<" "<<x<<endl; if(r[id]==0) v[id].pb(x),v[id].pb(x2); else if(r[id]==2) v[x].pb(id),v[x2].pb(id); else { if(r[x]==0) { v[x].pb(id); v[id].pb(x2); h[id]=1; } else if(r[x]==2) { v[id].pb(x); v[x2].pb(id); h[id]=0; } else if(h[x]) { v[id].pb(x); v[x2].pb(id); h[id]=0; } else { v[x].pb(id); v[id].pb(x2); h[id]=1; } } } for(int i=0;i<nn;i++) if(!used[i])dfs(i); for(int i=0;i<nn;i++) { /*cout<<i<<": "; for(int j=0;j<v[i].size();j++) cout<<v[i][j]<<" "; cout<<endl;*/ g[s.top()]=nn-i-1; s.pop(); } /*for(int i=0;i<nn;i++) cout<<g[i]<<" "; cout<<endl;*/ return; } int compare_plants(int x, int y) { if(g[x]<g[y])return -1; if(g[x]>g[y])return 1; return 0; }
#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...