Submission #321877

#TimeUsernameProblemLanguageResultExecution timeMemory
321877wildturtleStations (IOI20_stations)C++14
0 / 100
2507 ms2097156 KiB
#include "stations.h" #include<bits/stdc++.h> using namespace std; int A[500005],k,in[500005],out[500005],don[500005],mp[500005]; vector <int> v1[500005]; void dfs(int x,int y,int z) { k++; in[x]=k; don[x]=z; for(int i=0;i<v1[x].size();i++) { if(v1[x][i]==y) continue; dfs(v1[x][i],x,z+1); } k++; out[x]=k; } std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) { std::vector<int> labels(n); for(int i=0;i<n-1;i++) { v1[u[i]].push_back(v[i]); v1[v[i]].push_back(u[i]); } dfs(0,-1,0); for(int i=0;i<n;i++) { if(don[i]%2==0) A[i]=in[i]; else A[i]=out[i]; } sort(A,A+n); for(int i=0;i<n;i++) { mp[A[i]]=i; } for(int i=0;i<n;i++) { if(don[i]%2==0) labels[i]=mp[in[i]]; else labels[i]=mp[out[i]]; } return labels; } int find_next_station(int s, int t, std::vector<int> c) { if(s<c[0]) { for(int i=0;i<c.size()-1;i++) { if(i==0) { if(s+1<=t && t<=c[i]) return c[i]; } else if(c[i-1]+1<=t && t<=c[i]) return c[i]; } return c[c.size()-1]; } else { for(int i=0;i<c.size();i++) { if(i==c.size()-1) { if(c[i]<=t && t<=s-1) return c[i]; } else if(c[i]<=t && t<=c[i+1]-1) return c[i]; } return c[0]; } }

Compilation message (stderr)

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