Submission #761390

#TimeUsernameProblemLanguageResultExecution timeMemory
761390TrumlingSplit the Attractions (IOI19_split)C++14
0 / 100
495 ms1048576 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; void dfs(int start,int pre,int count) { if(count<a) res[start]=1; if(count>=a && count<b); res[start]=2; if(count>=b) res[start]=3; for(auto x:g[start]) if(x!=pre) 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); 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]]++; } for(int i=0;i<n;i++) if(count[i]==1) { dfs(i,i,0); break; } 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...