Submission #393351

#TimeUsernameProblemLanguageResultExecution timeMemory
393351lightonStations (IOI20_stations)C++17
100 / 100
1059 ms784 KiB
#include "stations.h" #include<bits/stdc++.h> using namespace std; int p = 1; int chk[1001]; vector<int> vec[1001]; void dfs(int now , int d){ if((d%2) == 0) chk[now] = p++; else chk[now] = 1; for(int i : vec[now]){ if(!chk[i]) dfs(i,d+1); } if((d%2) == 1) chk[now] = p++; } vector<int> label(int n, int k, vector<int> u, vector<int> v) { vector<int> labels(n); p = 1; for(int i = 0; i<n; i++){ chk[i] = 0; vec[i].clear(); } for(int i = 0; i < u.size(); i++){ vec[v[i]].push_back(u[i]); vec[u[i]].push_back(v[i]); } dfs(0,0); for (int i = 0; i < n; i++) { labels[i] = chk[i]; } return labels; } int find_next_station(int s, int t, vector<int> c) { if(c[c.size()-1] < s){ if(t > s) return c[0]; if(t < c[0]) return c[0]; return c[upper_bound(c.begin() , c.end() , t)-c.begin()-1]; } else{ if(t < s) return c[c.size()-1]; if(t > c[c.size()-1]) return c[c.size()-1]; return c[lower_bound(c.begin() , c.end() , t)-c.begin()]; } }

Compilation message (stderr)

stations.cpp: In function 'std::vector<int> label(int, int, std::vector<int>, std::vector<int>)':
stations.cpp:23:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   23 |     for(int i = 0; i < u.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...