제출 #517111

#제출 시각아이디문제언어결과실행 시간메모리
517111SirapetchStations (IOI20_stations)C++14
0 / 100
441 ms512 KiB
#include <bits/stdc++.h> using namespace std; vector <int> path[1111]; stack <int> walk; int pass[1111],ty[1111],st[1111]; vector <int> la; vector <int> label(int n, int k, vector<int> u, vector<int> v) { la.clear(); int i,x,y; for(i=0;i<n;i++) { pass[i]=0; ty[i]=0; la.push_back(0); path[i].clear(); } x=u.size(); for(i=0;i<x;i++) { path[u[i]].push_back(v[i]); path[v[i]].push_back(u[i]); } for(i=0;i<n;i++) { if(path[i].size()!=1) { pass[i]=1; break; } } la[i]=0; x=1; y=1; for(auto a:path[i]) { st[y]=x; walk.push(a); while(!walk.empty()) { i=walk.top(); walk.pop(); if(pass[i]==1) continue; pass[i]=1; la[i]=x; ty[x]=y; x++; for(auto a:path[i]) { if(pass[a]==1) continue; walk.push(a); } } y++; } return la; } int find_next_station(int s, int t, vector<int> c) { if(ty[s]==0) { return st[ty[t]]; } if(ty[s]==ty[t]) { if(s<t) return s+1; else return s-1; } if(s==st[ty[s]]) return 0; else return s-1; }
#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...