Submission #341501

# Submission time Handle Problem Language Result Execution time Memory
341501 2020-12-29T21:25:21 Z FlashGamezzz Rail (IOI14_rail) C++11
30 / 100
379 ms 98404 KB
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <vector>
#include <utility>
#include <map>
#include "rail.h"

using namespace std;

int n, dists[5000][5000] = {};

void findLocation(int N, int first, int location[], int stype[]){
	n = N;
	for (int i = 0; i < n; i++){
		for (int j = i+1; j < n; j++){
			dists[i][j] = getDistance(i, j); dists[j][i] = dists[i][j];
		}
	}
	int diff = 10000000, cd = -1;
	for (int i = 1; i < n; i++){
		if (dists[0][i] < diff){
			diff = dists[0][i]; cd = i;
		}
	}
	location[0] = first; stype[0] = 1;
	location[cd] = first+diff; stype[cd] = 2;
	for (int i = 1; i < n; i++){
		if (i != cd){
			int mv = 10000000, mi = -1;
			for (int j = 0; j < n; j++){
				if (j != i && dists[i][j] < mv){
					mv = dists[i][j]; mi = j;
				}
			}
			if (dists[i][cd] < dists[i][0]){ //left
				if (mi == cd){
					location[i] = first+diff-dists[i][cd]; stype[i] = 1;
				} else if (dists[mi][cd] < dists[i][cd]){ // C <- _D_ 0 D
					location[i] = first+diff-dists[mi][cd]+mv; stype[i] = 2;
				} else { // _C_ -> 0 D
					location[i] = first+diff-dists[i][cd]; stype[i] = 1;
				}
			} else { //right
				if (mi == 0){
					location[i] = first+dists[i][0]; stype[i] = 2;
				} else if (dists[mi][0] < dists[i][0]){ // 0 D _C_ -> D
					location[i] = first+dists[i][0]-mv; stype[i] = 1;
				} else { // 0 D _D_
					location[i] = first+dists[i][0]; stype[i] = 2;
				}
			}
		}
	}
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 748 KB Output is correct
2 Correct 1 ms 748 KB Output is correct
3 Correct 1 ms 748 KB Output is correct
4 Correct 1 ms 748 KB Output is correct
5 Correct 1 ms 748 KB Output is correct
6 Correct 1 ms 748 KB Output is correct
7 Correct 1 ms 748 KB Output is correct
8 Correct 1 ms 748 KB Output is correct
9 Correct 1 ms 748 KB Output is correct
10 Correct 1 ms 748 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 748 KB Output is correct
2 Correct 1 ms 748 KB Output is correct
3 Correct 1 ms 748 KB Output is correct
4 Correct 1 ms 748 KB Output is correct
5 Correct 1 ms 748 KB Output is correct
6 Correct 1 ms 748 KB Output is correct
7 Correct 1 ms 748 KB Output is correct
8 Correct 1 ms 748 KB Output is correct
9 Correct 1 ms 748 KB Output is correct
10 Correct 1 ms 748 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 379 ms 98404 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 378 ms 98284 KB Output isn't correct
2 Halted 0 ms 0 KB -