제출 #305000

#제출 시각아이디문제언어결과실행 시간메모리
305000Pajaraja기지국 (IOI20_stations)C++17
100 / 100
1228 ms1280 KiB
#include "stations.h" #include <bits/stdc++.h> #define MAXN 1007 using namespace std; static int lb[MAXN],t; static vector<int> g[MAXN]; void dfs(int s,int f,int d) { if(!d) lb[s]=t++; for(int i=0;i<g[s].size();i++) if(g[s][i]!=f) dfs(g[s][i],s,d^1); if(d) lb[s]=t++; } std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) { for(int i=0;i<n-1;i++) g[u[i]].push_back(v[i]); for(int i=0;i<n-1;i++) g[v[i]].push_back(u[i]); dfs(0,0,0); t=0; for(int i=0;i<n;i++) g[i].clear(); std::vector<int> labels(n); for (int i = 0; i < n; i++) labels[i] = lb[i]; return labels; } int find_next_station(int s, int t, std::vector<int> c) { if(s<c[0]) { sort(c.begin(),c.end()); vector<int> aux; for(int i=0;i+1<c.size();i++) aux.push_back(c[i]); if(c.size()==1) return c[0]; if(s==0) aux.push_back(c[c.size()-1]); if(t>s && t<=aux[0]) return aux[0]; for(int i=1;i<aux.size();i++) if(t>aux[i-1] && t<=aux[i]) return aux[i]; return c[c.size()-1]; } else { sort(c.begin(),c.end()); vector<int> aux; if(c.size()==1) return c[0]; for(int i=1;i<c.size();i++) aux.push_back(c[i]); for(int i=0;i+1<aux.size();i++) if(t>=aux[i] && t<aux[i+1]) return aux[i]; if(t<s && t>=aux[aux.size()-1]) return aux[aux.size()-1]; return c[0]; } }

컴파일 시 표준 에러 (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<g[s].size();i++) if(g[s][i]!=f) dfs(g[s][i],s,d^1);
      |                 ~^~~~~~~~~~~~
stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:28:24: 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+1<c.size();i++) aux.push_back(c[i]);
      |                     ~~~^~~~~~~~~
stations.cpp:32:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |         for(int i=1;i<aux.size();i++) if(t>aux[i-1] && t<=aux[i]) return aux[i];
      |                     ~^~~~~~~~~~~
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=1;i<c.size();i++) aux.push_back(c[i]);
      |                     ~^~~~~~~~~
stations.cpp:41:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   41 |         for(int i=0;i+1<aux.size();i++) if(t>=aux[i] && t<aux[i+1]) return aux[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...