Submission #1021879

#TimeUsernameProblemLanguageResultExecution timeMemory
1021879nisanduuSplit the Attractions (IOI19_split)C++14
18 / 100
71 ms13136 KiB
#include "split.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; vector<int> find_split(int n, int a, int b, int c, vector<int> p, vector<int> q) { ll A=a,B=b,C=c; vector<int> res(n); int m = p.size(); vector<vector<int>> adj(n+2); for(int i=0;i<m;i++){ adj[p[i]].push_back(q[i]); adj[q[i]].push_back(p[i]); } vector<int> vis(n+2); bool f1=0; if(B>C){ swap(B,C); f1=1; } stack<int> ds; ds.push(0); vector<int> vis1(n+10); while(!ds.empty()){ int node = ds.top(); ds.pop(); if(vis1[node]) continue; vis1[node]=1; if(B>0){ res[node]=f1 ? 3 : 2; B--; }else if(A>0){ A--; res[node]=1; }else{ C--; res[node]=f1 ? 2 : 3; } for(auto el:adj[node]){ if(!vis1[el]){ ds.push(el); } } } assert(A==0&&B==0&&C==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...