제출 #432763

#제출 시각아이디문제언어결과실행 시간메모리
432763Rouge_Hugo기지국 (IOI20_stations)C++14
16 / 100
901 ms788 KiB
#include<bits/stdc++.h> #include "stations.h" #define ll long long #define fi first #define se second #define pb push_back using namespace std; const int N=1009; int la[N]; vector<int>v[N];int re=0; void dfs(int x,int p) { la[x]=++re; for(auto it:v[x]) { if(it==p)continue; dfs(it,x); } } vector<int> label(int n, int k,vector<int> U, vector<int> V) { vector<int> l(n); for(int i=0;i<n-1;i++) { v[U[i]].pb(V[i]); v[V[i]].pb(U[i]); } int root=0; for(int i=0;i<n;i++)if(v[i].size()>2)root=i; l[root]=0;int r=-1; for(auto it:v[root]) {r++; re=r*1000; dfs(it,root); } for(int i=0;i<n;i++)l[i]=la[i]; memset(la,0,sizeof la);for(int i=0;i<n;i++)v[i].clear(); return l; } int find_next_station(int s, int t, std::vector<int> c) { int b1=s/1000; int b2=t/1000; if(t==0) { b2=b1; } if(s==0) { for(auto it:c) { int b=it/1000; if(b==b2)return it; } } if(b1==b2) { if(s<t) { return c[1]; } return c[0]; } return c[0]; } /* 1 5 1000000 0 1 1 2 1 3 2 4 2 2 0 1 1 3 3 */
#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...