Submission #761632

#TimeUsernameProblemLanguageResultExecution timeMemory
761632TrumlingSplit the Attractions (IOI19_split)C++14
0 / 100
1 ms212 KiB
#include "split.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; #define pb push_back #define F first #define S second #define enter cout<<'\n'; #define INF 99999999999999999 #define MOD 1000000007 #define all(x) x.begin(),x.end() int n,a,b,c; vector<int>p,q; vector<vector<int>>g; vector<int> res; vector<bool>vis; void dfs(int start,int pre,int count) { if(count<a) res[start]=1; if(count>=a && count<a+b); res[start]=2; if(count>=a+b) res[start]=3; vis[start]=1; for(auto x:g[start]) if(!vis[x]) { dfs(x,start,count+1); } } vector<int> find_split(int nn, int aa, int bb, int cc, vector<int> pp, vector<int> qq) { p=pp; q=qq; n=nn; a=aa; b=bb; c=cc; g.assign(n,vector<int>()); res.assign(n,0); vis.assign(n,0); ll m=p.size(); ll count[n]={ }; for(int i=0;i<m;i++) { g[p[i]].pb(q[i]); g[q[i]].pb(p[i]); count[p[i]]++; count[q[i]]++; } bool tf=1; for(int i=0;i<n;i++) if(count[i]==1) { tf=0; dfs(i,i,0); break; } if(!tf) dfs(0,0,0); 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...