제출 #652902

#제출 시각아이디문제언어결과실행 시간메모리
652902coding_snorlax기지국 (IOI20_stations)C++14
52.32 / 100
971 ms776 KiB
#include "stations.h" #include<bits/stdc++.h> using namespace std; vector<int> G[1005]; int sub_tree_size[1005]; int vis[1005]={0}; int tree_order[1005]; int now_order=0; int dfs(int node){ vis[node]=1; tree_order[node]=now_order; now_order++; int Count=0; for(int i:G[node]){ if(!vis[i]){ Count+=dfs(i); } } sub_tree_size[node]=Count; return Count+1; } void get_graph(vector<int> G1,vector<int> G2){ for(int i=0;i<1005;i++){ G[i].clear(); } for(int i=0;i<(int)G1.size();i++){ G[G1[i]].push_back(G2[i]); G[G2[i]].push_back(G1[i]); } for(int i=0;i<1005;i++){ vis[i]=0; now_order=0; } dfs(0); return; } vector<int> label(int n,int k,vector<int> u,vector<int> v){ vector<int> Answer; get_graph(u,v); for(int i=0;i<n;i++){ Answer.push_back(sub_tree_size[i]+1000*tree_order[i]); } return Answer; } //s/1000 is node, s%1000 is connect place int find_next_station(int s,int t,vector<int> c){ int now_node=s/1000; //root node if(now_node==0){ for(int i=0;i<(int)c.size();i++){ int check=c[i]/1000; int Plus=c[i]%1000; if(check<=t/1000 && t/1000<=check+Plus){ return c[i]; } } } else{ for(int i=1;i<(int)c.size();i++){ int check=c[i]/1000; int Plus=c[i]%1000; if(check<=t/1000 && t/1000<=check+Plus){ return c[i]; } } return c[0]; } }

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

stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:70:1: warning: control reaches end of non-void function [-Wreturn-type]
   70 | }
      | ^
#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...