Submission #991490

#TimeUsernameProblemLanguageResultExecution timeMemory
991490MarwenElarbiSplit the Attractions (IOI19_split)C++17
11 / 100
48 ms14428 KiB
#include<bits/stdc++.h> using namespace std; #define fi first #define se second #define ll long long #define pb push_back const int nax=200005; vector<int> adj[nax]; int aa; vector<int> res; vector<int> vis(nax); int cur; void dfs(int x){ if(cur>=aa) return; vis[x]=true; res[x]=2; for(auto u:adj[x]){ if(vis[u]) continue; cur++; dfs(u); } } vector<int> find_split(int n, int a, int b, int c, vector<int> p, vector<int> q){ bool test=false; if(b>c){ aa=b; }else{ aa=c; test=true; } res.resize(n,0); for (int i = 0; i < (int)p.size(); ++i) { adj[p[i]].pb(q[i]); adj[q[i]].pb(p[i]); } dfs(0); bool nabba=false; for (int i = 0; i < n; ++i) { if(res[i]==0&&!nabba){ res[i]=1; nabba=true; }else if(res[i]==0) res[i]=3; if(test&&res[i]==2) res[i]=3; else if(test&&res[i]==3) res[i]=2; //cout <<res[i]<<" "; }//cout <<endl; return res; }
#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...