Submission #1207275

#TimeUsernameProblemLanguageResultExecution timeMemory
1207275GabrielRail (IOI14_rail)C++17
30 / 100
33 ms584 KiB
#include "rail.h"
#include "bits/stdc++.h"
using namespace std;
void findLocation(int N, int first, int location[], int stype[]){
    int n = N;
    stype[0] = 1;
    location[0] = first;
    vector<int> Distancias1(n), Distancias2(n);
    int Menor = -2, Cercano = 0;
    Distancias1[0] = -0;
    for(int i = 1; i < n; i++){
        Distancias1[i] = getDistance(0, i);
        if(Menor == -2){
            Cercano = i;
            Menor = Distancias1[i];
        } else if(Menor > Distancias1[i]){
            Cercano = i;
            Menor = Distancias1[i];
        }
    }
    Distancias2[Cercano] = -0;
    for(int i = 0; i < n; i++) if(i != Cercano) Distancias2[i] = getDistance(Cercano, i);
    for(int i = 0; i < n; i++){
        if(i == 0){
            stype[i] = 1;
            location[i] = first;
        } else if(i == Cercano){
            stype[i] = 2;
            location[i] = first + Distancias1[i];
        } else {
            if(Distancias1[Cercano] + Distancias2[i] == Distancias1[i]){
                location[i] = first + Distancias1[Cercano] - Distancias2[i];
                stype[i] = 1;
            } else {
                location[i] = first + Distancias1[i];
                stype[i] = 2;
            }
        }
    }
    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...