제출 #309814

#제출 시각아이디문제언어결과실행 시간메모리
309814tjdgus4384기지국 (IOI20_stations)C++14
0 / 100
961 ms768 KiB
#include<bits/stdc++.h> #include "stations.h" using namespace std; bool visited[1001]; vector<int> path[1001]; int num1[1001], num2[1001]; int dfs1(int x, int cnt){ num1[x] = cnt; cnt++; for(int i = 0;i < path[x].size();i++){ if(visited[path[x][i]]) continue; visited[path[x][i]] = true; cnt = dfs1(path[x][i], cnt); } return cnt; } int dfs2(int x){ int ret = num1[x]; for(int i = 0;i < path[x].size();i++){ if(visited[path[x][i]]) continue; visited[path[x][i]] = true; ret = max(ret, dfs2(path[x][i])); } return num2[x] = ret; } vector<int> label(int n, int k, vector<int> u, vector<int> v){ for(int i = 0;i < n-1;i++){ path[u[i]].push_back(v[i]); path[v[i]].push_back(u[i]); } visited[0] = true; dfs1(0, 0); for(int i = 0;i < n;i++) visited[i] = false; visited[0] = true; dfs2(0); vector<int> ret; for(int i = 0;i < n;i++){ ret.push_back(num1[i]*1000+num2[i]); } return ret; } int find_next_station(int s, int t, vector<int> c){ int num2s = s%1000, num2t = t%1000; int num1s = (s-num2s)/1000, num1t = (t-num2t)/1000; for(int i = 1;i < c.size();i++){ num2[i] = c[i]%1000; num1[i] = (c[i]-num2[i])/1000; } if(num1t > num1s && num1t <= num2s){ int s = 1, e = c.size() - 1; while(s < e){ int mid = (s+e+1)/2; if(num1[mid] > num1t) e = mid-1; else s = mid; } return c[s]; } else return c[0]; }

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

stations.cpp: In function 'int dfs1(int, int)':
stations.cpp:10:21: 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 < path[x].size();i++){
      |                   ~~^~~~~~~~~~~~~~~~
stations.cpp: In function 'int dfs2(int)':
stations.cpp:19:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   19 |     for(int i = 0;i < path[x].size();i++){
      |                   ~~^~~~~~~~~~~~~~~~
stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:49:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   49 |     for(int i = 1;i < 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...