Submission #307640

#TimeUsernameProblemLanguageResultExecution timeMemory
307640giorgikobStations (IOI20_stations)C++14
Compilation error
0 ms0 KiB
#include "stations.h" #include <vector> #include<bits/stdc++.h> #define ll long long #define ff first #define ss second #define pb push_back using namespace std; const int N = 1e3+5; vector<int>gr[N]; int cnt = 0; int fix[N]; int mn[N]; int in[N], out[N]; void dfs(int x, int h, vector<int>&v){ fix[x] = 1; in[x] = cnt;cnt++; for(auto to : gr[x]){ if(fix[to]) continue; dfs(to,h+1,v); } out[x] = cnt;cnt++; if(h%2){ v[x] = out[x]; } else { v[x] = in[x]; } } std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) { std::vector<int> labels(n,0); for(int i = 0; i < u.size(); i++){ int x = u[i]; int y = v[i]; gr[x].pb(y); gr[y].pb(x); } cnt = 0; dfs(0,0,labels); for(int i = 0; i < n; i++) gr[i].clear(), fix[i] = 0; return labels; } int find_next_station(int s, int t, std::vector<int> c) { /*cout << "test case" << endl; cout << s << " " << t << endl; for(auto x : c) cout << x << " "; cout << endl; cout << "end of test case" << endl; */ if(c.size() == 1) return c[0]; if(c[0] < s){ for(int i = 1; i < c.size(); i++){ int in = c[i]; int out = (c[i] == c.back()) ? (s-1) : (c[i+1] - 1); if(in <= t && t <= out) return c[i]; } return c[0]; } else { if(in > t || t < out) return c.back(); for(int i = 0; i < c.size() - 1; i++){ int in = (i == 0) ? (s + 1) : (c[i-1] + 1); int out = c[i]; if(in <= t && t <= out) return c[i]; } return c.back(); } }

Compilation message (stderr)

stations.cpp: In function 'std::vector<int> label(int, int, std::vector<int>, std::vector<int>)':
stations.cpp:37:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |  for(int i = 0; i < u.size(); i++){
      |                 ~~^~~~~~~~~~
stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:61:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   61 |         for(int i = 1; i < c.size(); i++){
      |                        ~~^~~~~~~~~~
stations.cpp:68:17: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
   68 |         if(in > t || t < out) return c.back();
      |                 ^
stations.cpp:68:26: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
   68 |         if(in > t || t < out) return c.back();
      |                          ^~~
stations.cpp:69:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   69 |         for(int i = 0; i < c.size() - 1; i++){
      |                        ~~^~~~~~~~~~~~~~