Submission #992232

#TimeUsernameProblemLanguageResultExecution timeMemory
992232vjudge1Rail (IOI14_rail)C++17
30 / 100
44 ms604 KiB
#include "rail.h"
#include<bits/stdc++.h>
using namespace std;
void findLocation(int N, int first, int location[], int stype[]){
    stype[0]=1,location[0]=first;
    vector<pair<int,int>> V;
    vector<int>Cs,Ds,dfs(N);
    for(int i=1;i<N;i++){
        V.push_back({dfs[i]=getDistance(0,i),i});
    }
    sort(V.begin(),V.end());
    for(auto[i,j]:V){
        int done=0;
        for(auto k:Ds){
            int x=getDistance(j,k);
            if(i==x+dfs[k]){
                stype[j]=1;
                Cs.push_back(j);
                location[j]=location[k]-x;
                done=1;
                break;
            }
        }
        if(done)
            continue;
        for(auto k:Cs){
            int x=getDistance(j,k);
            if(i==x+dfs[k]){
                stype[j]=2;
                location[j]=location[k]+x;
                done=1;
                break;
            }
        }
        if(!done)
            stype[j]=2,
            location[j]=i+first,
            Ds.push_back(j);
    }
    return;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...