제출 #518496

#제출 시각아이디문제언어결과실행 시간메모리
518496DanerZeinStations (IOI20_stations)C++14
52.32 / 100
863 ms824 KiB
#include "stations.h" #include <bits/stdc++.h> using namespace std; typedef vector<int> vi; const int MAX_N=1010; vector<vi> G; int out[MAX_N],mi[MAX_N]; int ite=0; void dfs(int u,int p){ mi[u]=1e9; for(auto &v:G[u]){ if(v!=p){ dfs(v,u); mi[u]=min(mi[u],mi[v]); } } out[u]=ite++; mi[u]=min(mi[u],out[u]); } std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) { ite=0; G.clear(); G.resize(n+1); for(int i=0;i<n-1;i++){ G[u[i]].push_back(v[i]); G[v[i]].push_back(u[i]); } dfs(0,0); vector<int> la; for(int i=0;i<n;i++){ la.push_back(out[i]+(mi[i]*1000)); } return la; } int find_next_station(int s, int t, std::vector<int> c) { int pa=-1; int lab=t%1000; for(auto &v:c){ int l=v/1000; int r=v%1000; if(r>s%1000){ pa=v; continue; } if(l<=lab && r>=lab){ return v; } } return pa; }
#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...