Submission #1292795

#TimeUsernameProblemLanguageResultExecution timeMemory
1292795lucasdmyStations (IOI20_stations)C++20
0 / 100
392 ms576 KiB
#include "stations.h" #include <bits/stdc++.h> using namespace std; const int MAXN=1010; vector<int>graph[MAXN], labels, sub_size(MAXN), inv(MAXN); int c=0; void dfs(int x, int p){ labels[x]=c; inv[c]=x; c++; sub_size[x]=0; for(int k=0;k<graph[x].size();k++){ if(graph[x][k]!=p){ dfs(graph[x][k], x); sub_size[x]+=1+sub_size[graph[x][k]]; } } } vector<int>label(int n, int m, vector<int>a, vector<int>b){ for(int k=0;k<n;k++){ graph[k].clear(); } labels.resize(n); for(int k=0;k<n-1;k++){ graph[a[k]].push_back(b[k]); graph[b[k]].push_back(a[k]); } c=0; dfs(0, 0); return labels; } int find_next_station(int at, int end, vector<int>adj){ if(end<at or at+sub_size[inv[at]]<end){ return adj[0]; } for(int k=adj.size()-1;k>0;k--){ if(end>=adj[k]){ return adj[k]; } } return INT_MAX; }
#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...