Submission #1052378

#TimeUsernameProblemLanguageResultExecution timeMemory
1052378noyancanturkStations (IOI20_stations)C++17
100 / 100
521 ms1456 KiB
#include "stations.h" #include<bits/stdc++.h> using namespace std; #define pb push_back const int lim=2000; vector<int>v[lim]; int sz[lim]; int sbs(int node,int par){ sz[node]=1; for(int j:v[node]){ if(j==par)continue; sz[node]+=sbs(j,node); } return sz[node]; } vector<int>labels; void dfs(int node,int par,int l,int r,bool tag){ //cerr<<node<<" "<<par<<" "<<l<<" "<<r<<"\n"; assert(node<labels.size()); labels[node]=tag?l:r; int past=tag; for(int j:v[node]){ if(j==par)continue; dfs(j,node,l+past,l+past+sz[j]-1,!tag); past+=sz[j]; } } std::vector<int> label(int n, int k, std::vector<int> U, std::vector<int> V) { for(int i=0;i<n;i++)v[i].clear(); for(int i=0;i<n-1;i++){ v[U[i]].pb(V[i]); v[V[i]].pb(U[i]); } labels=vector<int>(n); sbs(0,-1); dfs(0,-1,0,n-1,1); /* for(int i=0;i<n;i++)cerr<<labels[i]<<" "; cerr<<"\n"; */ return labels; } int find_next_station(int s, int t, std::vector<int> c) { if(s<c[0]){ for(int i=0;i+1<c.size();i++){ if(s<=t&&t<=c[i]){ return c[i]; } } return c[c.size()-1]; }else{ for(int i=int(c.size())-1;i;i--){ if(c[i]<=t&&t<=s){ return c[i]; } } return c[0]; } }

Compilation message (stderr)

In file included from /usr/include/c++/10/cassert:44,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:33,
                 from stations.cpp:3:
stations.cpp: In function 'void dfs(int, int, int, int, bool)':
stations.cpp:27:13: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   27 |  assert(node<labels.size());
      |         ~~~~^~~~~~~~~~~~~~
stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:55:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   55 |   for(int i=0;i+1<c.size();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...