Submission #397934

#TimeUsernameProblemLanguageResultExecution timeMemory
397934cfalasStations (IOI20_stations)C++14
76 / 100
1154 ms788 KiB
#include "stations.h" #include<bits/stdc++.h> using namespace std; #define mp make_pair #define INF 10000000 #define MOD 1000000007 #define MID ((l+r)/2) #define HASHMOD 2305843009213693951 #define ll long long #define ull unsigned long long #define F first #define S second typedef pair<ll, ll> ii; typedef pair<ii, int> iii; typedef vector<int> vi; typedef vector<ii> vii; typedef map<int, int> mii; #define EPS 1e-6 #define FOR(i,n) for(int i=0;i<((int)(n));i++) #define FORi(i,a,b) for(int i=((int)(a));i<((int)(b));i++) #define FOA(v, a) for(auto v : a) vector<vi> adj; vi labels; int cnt=0; vi sub; int d=0; void dfs(int s, int p=-1){ d++; //cout<<"enter "<<s<<" "<<cnt<<endl; labels[s] = cnt++; for(auto v : adj[s]) if(v!=p) dfs(v, s), sub[s]+=sub[v]; d--; //cout<<"leave "<<s<<" "<<cnt<<endl; if(d%2==1) labels[s] = cnt; cnt++; } vi label(int n, int k, std::vector<int> u, std::vector<int> v) { cnt = 0; adj.assign(n, vi()); sub.assign(n, 1); labels.assign(n, 0); FOR(i,n-1){ adj[u[i]].push_back(v[i]); adj[v[i]].push_back(u[i]); } dfs(0); //FOR(i,n) cout<<labels[i]<<" "<<sub[i]-1<<endl; //FOA(v, labels) cout<<v<<" "; cout<<endl; return labels; } int find_next_station(int s, int t, std::vector<int> c) { sort(c.begin(), c.end()); if(s<c[0]){ // s is t_in // c is t_out //cout<<s<<" "<<t<<endl; int prev = s; FOA(v,c){ if(prev<t && t<=v) return v; prev = v; } return c.back(); } else{ // s is t_out // c is t_in //cout<<s<<" "<<t<<endl; reverse(c.begin(), c.end()); //cout<<"N: "; FOA(v,c) cout<<v<<" "; //cout<<endl; int prev = s; FOA(v,c){ if(v<=t && t<prev) return v; prev = v; } return c.back(); } }
#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...