제출 #290231

#제출 시각아이디문제언어결과실행 시간메모리
290231AaronNaidu철로 (IOI14_rail)C++14
30 / 100
408 ms98616 KiB
#include <bits/stdc++.h> #include "rail.h" using namespace std; int distFrom0[5001]; int distFromMin[5001]; int queries[5001][5001]; int closest[5001]; bool doneWith[5001]; vector<int> goesTo[5001]; void findLocation(int n, int first, int location[], int sType[]) { location[0] = first; sType[0] = 1; doneWith[0] = true; for (int i = 0; i < n; i++) { for (int j = i+1; j < n; j++) { queries[i][j] = getDistance(i,j); queries[j][i] = queries[i][j]; } } for (int i = 0; i < n; i++) { int minDist = 1000000007; int minIndex = -1; for (int j = 0; j < n; j++) { if (j != i and queries[i][j] < minDist) { minDist = queries[i][j]; closest[i] = j; } } } for (int i = 0; i < n; i++) { goesTo[closest[i]].push_back(i); } int numDone = n-1; queue<int> q; q.push(0); while (!q.empty()) { int x = q.front(); q.pop(); if (!doneWith[closest[x]]) { q.push(closest[x]); doneWith[closest[x]] = true; if (sType[x] == 1) { sType[closest[x]] = 2; location[closest[x]] = location[x] + queries[x][closest[x]]; } else { sType[closest[x]] = 1; location[closest[x]] = location[x] - queries[x][closest[x]]; } } for (auto i : goesTo[x]) { if (!doneWith[i]) { q.push(i); doneWith[i] = true; if (sType[x] == 1) { sType[i] = 2; location[i] = location[x] + queries[x][i]; } else { sType[i] = 1; location[i] = location[x] - queries[x][i]; } } } } }

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

rail.cpp: In function 'void findLocation(int, int, int*, int*)':
rail.cpp:27:13: warning: unused variable 'minIndex' [-Wunused-variable]
   27 |         int minIndex = -1;
      |             ^~~~~~~~
rail.cpp:41:9: warning: unused variable 'numDone' [-Wunused-variable]
   41 |     int numDone = n-1;
      |         ^~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...