제출 #577918

#제출 시각아이디문제언어결과실행 시간메모리
577918alirezasamimi100철로 (IOI14_rail)C++17
30 / 100
78 ms720 KiB
#include "rail.h" #include <bits/stdc++.h> #define pb push_back #define F first #define S second using namespace std; using pii = pair<int, int>; int n, l, r; map<int, int> tt; vector<pii> vec; void findLocation(int N, int first, int location[], int stype[]) { n = N; l = 0; location[0] = first; stype[0] = 1; tt[location[0]] = 0; for(int i = 1; i < n; i++){ vec.pb({getDistance(0, i), i}); } sort(vec.begin(), vec.end()); if(n == 1) return; r = vec[0].S; location[r] = location[l] + vec[0].F; tt[location[r]] = 1; stype[r] = 2; for(int i = 1; i < n - 1; i++){ int k = vec[i].S; int x = location[l] + getDistance(l, k), y = location[r] - getDistance(r, k); int m = (x + y) >> 1; if(x < 0 || (y >= 0 && tt[m])){ location[k] = y; tt[y] = stype[k] = 0; if(y < location[l]) l = k; }else{ location[k] = x; tt[x] = stype[k] = 1; if(x > location[r]) r = k; } stype[k]++; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...