Submission #308610

#TimeUsernameProblemLanguageResultExecution timeMemory
308610nadorbStations (IOI20_stations)C++14
31.04 / 100
1359 ms1248 KiB
#include "stations.h" #include <bits/stdc++.h> using namespace std; vector<vector<int>>graf; vector<int>visit; vector<pair<int,int>>beki; void dfs(int v,int &ido){ visit[v]=1; beki[v].first=ido; ido++; for(int i:graf[v]){ if(!visit[i]){ dfs(i,ido); } } beki[v].second=ido; ido++; } vector<int> label(int n, int k, vector<int> u, vector<int> v) { vector<int> labels(n); graf.clear(); visit.clear(); beki.clear(); graf.resize(n); visit.resize(n,0); beki.resize(n); int ido=0; for (int i = 0; i < n-1; i++) { graf[u[i]].push_back(v[i]); graf[v[i]].push_back(u[i]); } dfs(0,ido); for(int i=0;i<n;i++){ labels[i]=beki[i].first*2000+beki[i].second; } return labels; } int find_next_station(int s, int t, vector<int> c) { pair<long long, long long>kezdo; pair<long long, long long>cel; kezdo.first=s/2000; kezdo.second=s%2000; cel.first=t/2000; cel.second=t%2000; int ki=c[0]; if(kezdo.first<cel.first && kezdo.second>cel.second){ //else jo a c[0] for(unsigned long long i=1;i<c.size();i++){ int cf=c[i]/2000,cs=c[i]%2000; if(cf<=cel.first && cs>=cel.second){ ki=c[i]; break; } } } return ki; }
#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...