제출 #320654

#제출 시각아이디문제언어결과실행 시간메모리
320654lohacho철로 (IOI14_rail)C++14
30 / 100
94 ms20708 KiB
#include "rail.h" #include <bits/stdc++.h> using namespace std; using LL = long long; const int MOD = (int)1e9 + 7; const int NS = (int)5004; vector<pair<int, int>> l, r; int dis[5004][5004]; void findLocation(int N, int first, int location[], int stype[]){ int rnum, mn = MOD; for(int i = 1; i < N; ++i){ dis[0][i] = getDistance(0, i); if(dis[0][i] < mn){ mn = dis[0][i]; rnum = i; } } for(int i = 1; i < N; ++i){ if(i == rnum){ continue; } dis[rnum][i] = getDistance(rnum, i); } for(int i = 1; i < N; ++i){ if(i == rnum){ continue; } if(dis[0][i] == dis[0][rnum] + dis[rnum][i]){ l.push_back({dis[rnum][i], i}); } else{ r.push_back({dis[0][i], i}); } } sort(r.begin(), r.end()); location[0] = first, stype[0] = 1; location[rnum] = first + dis[0][rnum], stype[rnum] = 2; int last = -1; for(auto&i:r){ int num = i.second; if(last == -1){ location[num] = first + dis[0][num], stype[num] = 2; last = num; continue; } dis[last][num] = getDistance(last, num); if(dis[0][num] == dis[0][last] + dis[last][num]){ location[num] = location[last] - dis[last][num], stype[num] = 1; } else{ location[num] = first + dis[0][num], stype[num] = 2; last = num; } } last = -1; for(auto&i:l){ int num = i.second; if(last == -1){ location[num] = location[rnum] - dis[rnum][num], stype[num] = 1; last = num; continue; } dis[last][num] = getDistance(last, num); if(dis[rnum][num] == dis[rnum][last] + dis[last][num]){ location[num] = location[last] + dis[last][num], stype[num] = 2; } else{ location[num] = location[rnum] - dis[rnum][num], stype[num] = 1; last = num; } } }

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

rail.cpp: In function 'void findLocation(int, int, int*, int*)':
rail.cpp:40:14: warning: 'rnum' may be used uninitialized in this function [-Wmaybe-uninitialized]
   40 |     location[rnum] = first + dis[0][rnum], stype[rnum] = 2;
      |              ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...