Submission #307648

#TimeUsernameProblemLanguageResultExecution timeMemory
307648azberjibiouStations (IOI20_stations)C++17
100 / 100
1199 ms10688 KiB
#include "stations.h" #include <bits/stdc++.h> #define fir first #define sec second #define pii pair<int, int> using namespace std; const int mxN=100010; int N; vector <int> v[mxN], down[mxN]; int ans[mxN]; bool Chk[mxN]; int typ[mxN]; int sub[mxN]; void dfs1(int num, int typn) { Chk[num]=true; typ[num]=typn; for(int ele : v[num]) { if(Chk[ele]) continue; dfs1(ele, 1-typn); sub[num]+=sub[ele]; down[num].push_back(ele); } } void dfs2(int num, int str, int fin) { if(typ[num]==0) ans[num]=str++; else ans[num]=fin--; for(int ele : down[num]) { dfs2(ele, str, str+sub[ele]-1); str+=sub[ele]; } } std::vector<int> label(int n, int k, std::vector<int> a, std::vector<int> b) { vector<int> labels(n); N=n; for(int i=0;i<N;i++) v[i].clear(), down[i].clear(); for(int i=0;i<N;i++) Chk[i]=false, typ[i]=0, sub[i]=1, ans[i]=-1; for(int i=0;i<N-1;i++) { v[a[i]].push_back(b[i]); v[b[i]].push_back(a[i]); } dfs1(1, 0); dfs2(1, 0, N-1); for (int i = 0; i < n; i++) { labels[i] = ans[i]; } return labels; } int find_next_station(int s, int t, vector<int> c) { if(c.size()==1) return c[0]; if(s<c[0]) { int str=s; for(int i=0;i<c.size()-1;i++) { if(str<=t && t<=c[i]) return c[i]; str=c[i]+1; } return c.back(); } else { int fin=s; for(int i=c.size()-1;i>0;i--) { if(t<=fin && t>=c[i]) return c[i]; fin=c[i]-1; } return c[0]; } }

Compilation message (stderr)

stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:59:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   59 |         for(int i=0;i<c.size()-1;i++)
      |                     ~^~~~~~~~~~~
#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...