Submission #581365

# Submission time Handle Problem Language Result Execution time Memory
581365 2022-06-22T14:19:29 Z Josia Rail (IOI14_rail) C++14
30 / 100
74 ms 468 KB
#include "rail.h"
#include <bits/stdc++.h>
using namespace std;

void findLocation(int N, int first, int location[], int stype[]) {
    vector<bool> visited(N);

    location[0] = 0;
    stype[0] = 1;
    visited[0] = 1;
    vector<int> distancesFromZero;
    for (int i=0; i<N; i++) {
        if (i == 0) {
            distancesFromZero.push_back(1e9); continue;
        }
        distancesFromZero.push_back(getDistance(0, i));
    }

    int nextRight = min_element(distancesFromZero.begin(), distancesFromZero.end())-distancesFromZero.begin();
    stype[nextRight] = 2;
    location[nextRight] = distancesFromZero[nextRight];
    visited[nextRight] = 1;

    
    vector<int> distancesFromNextRight;
    for (int i=0; i<N; i++) {
        if (i == nextRight) {
            distancesFromNextRight.push_back(1e9); continue;
        }
        distancesFromNextRight.push_back(getDistance(nextRight, i));
    }


    // for (int i = 0; i<N; i++) {
    //     cerr << distancesFromZero[i] << " ";
    // }
    // cerr << "\n";
    // for (int i = 0; i<N; i++) {
    //     cerr << distancesFromNextRight[i] << " ";
    // }
    // cerr << "\n";
    // cerr << "\n";


    for (int i=0; i<N; i++) {
        if (visited[i]) continue;
        if (distancesFromZero[nextRight] + distancesFromNextRight[i] == distancesFromZero[i]) {
            stype[i] = 1;
            location[i] = location[nextRight]-distancesFromNextRight[i];
            visited[i] = 1;
        }

        if (distancesFromZero[i] + distancesFromZero[nextRight] == distancesFromNextRight[i]) {
            stype[i] = 2;
            location[i] = distancesFromZero[i];
            visited[i] = 1;
        }
    }
















    for (int i = 0; i<N; i++) {
        location[i] += first;
        // cerr << location[i] << " ";
    }
    // cerr << "\n";
    // for (int i = 0; i<N; i++) cerr << stype[i] << " ";
    // cerr << "\n";
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 1 ms 340 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 1 ms 392 KB Output is correct
8 Correct 1 ms 340 KB Output is correct
9 Correct 1 ms 340 KB Output is correct
10 Correct 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 1 ms 340 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 1 ms 340 KB Output is correct
8 Correct 1 ms 340 KB Output is correct
9 Correct 1 ms 340 KB Output is correct
10 Correct 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 74 ms 468 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 68 ms 468 KB Output isn't correct
2 Halted 0 ms 0 KB -