Submission #1239892

#TimeUsernameProblemLanguageResultExecution timeMemory
1239892moondarksideStations (IOI20_stations)C++20
100 / 100
307 ms624 KiB
#include<bits/stdc++.h> using namespace std; vector<vector<int>> Next; vector<int> Values; int dfs(int x,int parent,int Pelements,bool type) { auto a=x; if(type==false) { Values[x]=Pelements; int children=1+Pelements; for(int i=0; i<Next[x].size(); i++) { if(Next[x][i]!=parent) { children += dfs(Next[x][i],x,children,true); } } auto A=Values; return children-Pelements; } int children=Pelements; for(int i=0; i<Next[x].size(); i++) { if(Next[x][i]!=parent) { children += dfs(Next[x][i],x,children,false); } } Values[x]=children; children++; auto A=Values; return children-Pelements; } vector<int> label(int n, int k, vector<int> u, vector<int> v) { Next=vector<vector<int>> (n); for(int i=0; i<n-1; i++) { Next[u[i]].push_back(v[i]); Next[v[i]].push_back(u[i]); } Values=vector<int>(n); dfs(0,-1,0,false); return Values; } int find_next_station(int s, int t, vector<int> c){ if(s<c[0]){ if(t<s){ return c[c.size()-1]; } for(int i=0;i<c.size()-1;i++){ if(t<=c[i]){ return c[i]; } } return c[c.size()-1]; } if(t>s){ return c[0]; } for(int i=c.size()-1;i>0;i--){ if(t>=c[i]){ return c[i]; } } 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...