# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
285446 | DanerZein | Split the Attractions (IOI19_split) | C++14 | 64 ms | 8824 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "split.h"
#include <bits/stdc++.h>
using namespace std;
typedef vector<int> vi;
typedef pair<int,int> ii;
vector<vi> G;
int vis[100010];
bool sw=0;
int ca;
vi pat;
void dfs(int u,int cas){
if(ca<=0){
sw=1;
return;
}
ca--;
vis[u]=cas;
pat.push_back(u);
for(auto &v:G[u]){
if(vis[v]!=cas and vis[v]!=-1){
dfs(v,cas);
}
}
//vis[u]=0;
}
vector<int> find_split(int n, int a, int b, int c, vector<int> p, vector<int> q) {
G.resize(n+1);
for(int i=0;i<p.size();i++){
G[p[i]].push_back(q[i]);
G[q[i]].push_back(p[i]);
}
vector<ii> aux;
aux.push_back(ii(a,1));
aux.push_back(ii(b,2));
aux.push_back(ii(c,3));
sort(aux.begin(),aux.end());
int id;
for(int i=0;i<G.size();i++){
if(G[i].size()==1){
id=i;
break;
}
}
memset(vis,0,sizeof vis);
ca=aux[0].first;
dfs(id,-1);
bool res=0;
vector<int> r;
r.resize(n);
if(sw==0){
res=1;
}
else{
for(int i=0;i<pat.size();i++){
r[pat[i]]=aux[0].second;
}
}
int cas=1;
for(int i=0;i<n;i++){
if(!vis[i]){
sw=0;
ca=aux[1].first;
//cout<<ca<<endl;
pat.clear();
dfs(i,cas);
cas++;
if(sw==1){
for(int i=0;i<pat.size();i++){
r[pat[i]]=aux[1].second;
}
break;
}
}
}
if(sw==0){
res=1;
}
if(res==1){
for(int i=0;i<n;i++){
r.push_back(0);
}
}
else{
for(int i=0;i<n;i++){
if(r[i]==0){
r[i]=aux[2].second;
}
}
}
return r;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |