제출 #603362

#제출 시각아이디문제언어결과실행 시간메모리
603362ShithilaSplit the Attractions (IOI19_split)C++14
0 / 100
38 ms3392 KiB
#include "split.h" #include <bits/stdc++.h> using namespace std; vector<int> find_split(int n, int a, int b, int c, vector<int> p, vector<int> q) { vector<int> res; int m=p.size(); //cout<<m<<endl; int connected[m][2]; bool visited[m]; for(int i=0;i<n;i++) { connected[i][0]=-1; connected[i][1]=-1; visited[i]=false; res.push_back(3); } for(int i=0;i<m;i++) { int x=p[i]; int y=q[i]; if(connected[x][0]==-1) connected[x][0]=y; else connected[x][1]=y; if(connected[y][0]==-1) connected[y][0]=x; else connected[y][1]=x; } int startpos=-1; int endpos=-1; for(int i=0;i<n;i++) { if(connected[i][0]==-1 || connected[i][1]==-1) { if(startpos==-1) startpos=i; else endpos=i; } } if(startpos==-1) { return res; } int startcount=0; while(startcount<a) { visited[startpos]=true; res[startpos]=1; startcount++; if(visited[connected[startpos][0]]==true) { startpos=connected[startpos][1]; } else startpos=connected[startpos][0]; } int endcount=0; while(endcount<b) { visited[endpos]=true; res[endpos]=2; endcount++; if(visited[connected[endpos][0]]==true) { endpos=connected[endpos][1]; } else endpos=connected[endpos][0]; } /*for(int i=0;i<n;i++) { 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...