제출 #885475

#제출 시각아이디문제언어결과실행 시간메모리
885475epicci23Stations (IOI20_stations)C++17
0 / 100
593 ms684 KiB
#include "stations.h" #include "bits/stdc++.h" using namespace std; #define pb push_back #define sz(x) ((int)(x).size()) typedef long long ll; vector<int> v[1005]; int ti=0,ttin[1005],ttout[1005],depth[1005]; void dfs(int c,int p){ depth[c]=depth[p]^1; ttin[c]=++ti; for(int x:v[c]){ if(x==p) continue; dfs(x,c); } ttout[c]=ti; } vector<int> label(int n,int k,vector<int> u,vector<int> w){ depth[0]=ti=0; for(int i=0;i<n;i++) v[i].clear(); vector<int> res(n); for(int i=0;i<u.size();i++){ v[u[i]].pb(w[i]); v[w[i]].pb(u[i]); } dfs(0,0); for(int i=0;i<n;i++){ if(depth[i]) res[i]=ttin[i]; else res[i]=ttout[i]; } return res; } int find_next_station(int s,int t,vector<int> c){ if(sz(c)==1) return c[0]; if(s<c[0]){ int sin=s,sout=c[sz(c)-2]; int last=s; if(!(t>=sin && t<=sout)) return c[sz(c)-1]; for(int x:c){ int xout=x,xin=last+1; if(t>=xin && t<=xout) return x; last=xout+1; } return c[sz(c)-1]; } else{ int sin=c[1]-1,sout=s; if(!(t>=sin && t<=sout)) return c[0]; for(int i=1;i<sz(c);i++){ int xin=c[i]; int xout; if(i+1<sz(c)) xout=c[i+1]-1; else xout=s; if(t>=xin && t<=xout) return c[i]; } return c[0]; } }

컴파일 시 표준 에러 (stderr) 메시지

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