Submission #1193468

#TimeUsernameProblemLanguageResultExecution timeMemory
1193468simona1230Comparing Plants (IOI20_plants)C++20
0 / 100
4 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; id--; if(id==-1)id=nn-1; cout<<id<<" "<<x<<endl; if(r[id]==0) v[id].pb(x); else if(r[id]==2) v[x].pb(id); else { if(r[x]==0) { v[x].pb(id); h[id]=1; } else if(r[x]==2) { v[id].pb(x); h[id]=0; } else if(h[x]) { v[id].pb(x); h[id]=0; } else { v[x].pb(id); h[id]=1; } } } for(int i=0;i<nn;i++) if(!used[i])dfs(i); for(int i=0;i<nn;i++) { g[s.top()]=nn-i-1; s.pop(); } 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...