Submission #320506

#TimeUsernameProblemLanguageResultExecution timeMemory
320506AmbokStations (IOI20_stations)C++14
100 / 100
1002 ms1376 KiB
#include <bits/stdc++.h> #include "stations.h" using namespace std; int coun=0; vector < vector <int> > vec(2000); vector <int> L(2000); void dfs (int x, int y, int h) { if (h%2==0) L[x]=coun; coun++; for (int i=0; i<vec[x].size(); i++) { if (vec[x][i]==y) continue; dfs(vec[x][i], x, h+1); } if (h%2==1) L[x]=coun; h--; coun++; } vector <int> label(int n, int k, vector <int> u, vector <int> v) { int s, h, i; L.resize(n); vec.resize(n); for (i=0; i<n; i++) { vec[i].clear(); } for (i=0; i<n-1; i++) { vec[u[i]].push_back(v[i]); vec[v[i]].push_back(u[i]); } L[0]=0; coun=0; dfs (0, -1, 0); vector < vector < int > > d; for(int i = 0; i < n; ++i) { d.push_back({L[i], i}); } sort(d.begin(), d.end()); for(int i=0; i<n; i++) { L[d[i][1]] = i; } return L; } int find_next_station(int s, int t, vector <int>c) { int n=c.size(), i; int in[n+1], out[n+1]; for (i=0; i<n; i++) in[i]=0, out[i]=0; if (n==1) return c[0]; if (s==0) { in[n]=s; out[n]=c[n-1]+1; for (i=0; i<n; i++) out[i]=c[i]; in[0]=s+1; for (i=1; i<n; i++) { in[i]=out[i-1]+1; } for (i=0; i<n; i++) { if (t>=in[i] && t<=out[i]) return c[i]; } } if (s>c[n-1]) { in[n]=c[1]-1; out[n]=s; for (i=0; i<n; i++) in[i]=c[i]; for (i=1; i<n; i++) { if (i==n-1) out[n-1]=s-1; else out[i]=in[i+1]-1; } for (i=1; i<n; i++) { if (t>=in[i] && t<=out[i]) return c[i]; } return c[0]; } else { in[n]=s; out[n]=c[n-2]+1; for (i=0; i<n; i++) out[i]=c[i]; in[0]=s+1; for (i=1; i<n; i++) { in[i]=out[i-1]+1; } for (i=0; i<n-1; i++) { if (t>=in[i] && t<=out[i]) return c[i]; } return c[n-1]; } }

Compilation message (stderr)

stations.cpp: In function 'void dfs(int, int, int)':
stations.cpp:11:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   11 |   for (int i=0; i<vec[x].size(); i++)
      |                 ~^~~~~~~~~~~~~~
stations.cpp: In function 'std::vector<int> label(int, int, std::vector<int>, std::vector<int>)':
stations.cpp:21:6: warning: unused variable 's' [-Wunused-variable]
   21 |  int s, h, i;
      |      ^
stations.cpp:21:9: warning: unused variable 'h' [-Wunused-variable]
   21 |  int s, h, 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...