Submission #426622

#TimeUsernameProblemLanguageResultExecution timeMemory
426622Dakto철로 (IOI14_rail)C++17
30 / 100
3107 ms197576 KiB
#include "rail.h"
#include <bits/stdc++.h>

using namespace std;

void findLocation(int n, int first, int location[], int stype[]) {
    location[0]=first;
    stype[0]=1;
    priority_queue<pair<int,pair<int,int>>,vector<pair<int,pair<int,int>>>,greater<pair<int,pair<int,int>>>> q;
    vector<bool> seen(n,0);
    seen[0]=1;
    for(int i=1; i<n; i++) q.emplace(getDistance(0,i), make_pair(i,0));
    while(!q.empty()){
        auto t=q.top();
        auto p=t.second;
        q.pop();
        if(seen[t.second.first]) continue;
        seen[t.second.first]=1;
        stype[p.first]=stype[p.second]==1?2:1;
        location[p.first]=location[p.second]+t.first*(stype[p.second]==1?1:-1);
        for(int i=1; i<n; i++) if(!seen[i]) q.emplace(getDistance(p.first,i), make_pair(i,p.first));
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...