Submission #883479

#TimeUsernameProblemLanguageResultExecution timeMemory
883479ono_de206Rail (IOI14_rail)C++14
56 / 100
405 ms98896 KiB
#include "rail.h" #include<bits/stdc++.h> using namespace std; #define in insert #define all(x) x.begin(),x.end() #define pb push_back #define eb emplace_back #define ff first #define ss second //#define int long long typedef long long ll; typedef vector<int> vi; typedef set<int> si; typedef multiset<int> msi; typedef pair<int, int> pii; typedef vector<pii> vpii; void findLocation(int n, int first, int pos[], int tp[]) { pos[0] = first; tp[0] = 1; vector<vector<int>> dis(n, vector<int>(n, -1)); auto get = [&](int x, int y) -> int { if(x > y) swap(x, y); if(dis[x][y] != -1) return dis[x][y]; return dis[x][y] = getDistance(x, y); }; for(int i = 1; i < n; i++) { if(tp[i] != 0) continue; vector<int> lol; for(int j = 1; j < n; j++) { if(i == j) continue; if(get(0, i) == get(0, j) + get(j, i)) lol.pb(j); } int x = first, ls = 0, k = 0; lol.pb(i); sort(all(lol), [&](int ii, int jj) { return get(0, ii) < get(0, jj); }); for(int y : lol) { if(k) { x -= get(ls, y); } else { x += get(ls, y); } ls = y; k ^= 1; pos[i] = x; tp[i] = k + 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...