제출 #1292818

#제출 시각아이디문제언어결과실행 시간메모리
1292818lambd47기지국 (IOI20_stations)C++20
0 / 100
3068 ms488 KiB
#include<bits/stdc++.h> using namespace std; #define L(i,j,k) for(int i=(j);i<=(k);i++) #define R(i,j,k) for(int i=(j);i>=(k);i--) #define sz(v) ((int)(v).size()) #define all(v) (v).begin(),(v).end() #include "stations.h" std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) { vector<int> dp(n); vector<vector<int>> adj(n); L(i,0,n-2){ adj[u[i]].push_back(v[i]); adj[v[i]].push_back(u[i]); } int node=0; L(i,0,n-1)if(sz(adj[i])==1)node=i; int lst=-1; int at=n-1; while(true){ dp[node]=at; at++; if(sz(adj[node])==1 && lst==adj[node][0])return dp; int pst=node; if(sz(adj[node])==1)node=adj[node][0]; else node=adj[node][0]^adj[node][1]^lst; lst=pst; } return dp; } int find_next_station(int s, int t, std::vector<int> c) { if(s<t)return c.back(); else return c[0]; }
#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...