Submission #350900

#TimeUsernameProblemLanguageResultExecution timeMemory
350900beksultan04Stations (IOI20_stations)C++14
100 / 100
1286 ms15456 KiB
#include "stations.h" #ifndef EVAL #include "stub.cpp" #endif // EVAL #include <bits/stdc++.h> using namespace std; #define lol long long #define pii pair<int,int> #define OK puts("OK"); #define NO puts("NO"); #define YES puts("YES"); #define fr first #define sc second #define ret return #define scanl(a) scanf("%lld",&a); #define scanll(a,b) scanf("%lld %lld",&a, &b); #define scanlll(a,b,c) scanf("%lld %lld %lld",&a,&b,&c); #define scan1(a) scanf("%d",&a); #define scan2(a,b) scanf("%d %d",&a, &b); #define scan3(a,b,c) scanf("%d %d %d",&a,&b,&c); #define all(s) s.begin(),s.end() #define allr(s) s.rbegin(),s.rend() #define pb push_back #define sz(v) (int)v.size() #define endi puts(""); #define eps 1e-12 const int N = 3e5+12,INF=1e9+7; vector <int> g[N],asd; int cnt; void dfs(int x,int p,int s){ if (!s) asd[x] = cnt++; for (int to : g[x]){ if (to == p)continue; dfs(to,x,s^1); } if (s)asd[x] = cnt++; } vector<int> label(int n, int k, vector<int> u, vector<int> v) { for (int i = 0; i < n-1; i++) { g[u[i]].pb(v[i]); g[v[i]].pb(u[i]); } cnt=0; asd.resize(n); dfs(0,-1,0); for (int i=0;i<n;++i){ g[i].clear(); } return asd; } int find_next_station(int s, int t, vector<int> c) { int mx = c[c.size()-1],i,n = c.size()-1; if (mx < s){ for (i=n;i>=0;--i) if (min(s,c[i]) <= t && t <= max(s,c[i]))ret c[i]; ret c[0]; } else { for (i=0;i<=n;++i) if (min(s,c[i]) <= t && t <= max(s,c[i]))ret c[i]; ret c[n]; } }
#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...