# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1146307 | aarb_.tomatexd | 철로 (IOI14_rail) | C++20 | 0 ms | 0 KiB |
#include "rail.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
//int getDistance(int i, int j);
void findLocation(int N, int first, int location[], int stype[]){
int n = N;
int minD = 2147483647;
int primerD;
for(int i= 1; i<n;i++){
int a = getDistance(0,i);
if(a <= minD){
minD = a;
primerD = i;
}
}
stype[0] = 1;
stype[primerD] = 2;
location[primerD] = first + getDistance(0,primerD);
location[0] = first;
//tengo el primer D, y el primer C
for(int i=1;i<n;i++){
if(i!=primerD){
int sero = getDistance(i, primerD);
int de = getDistance(i, 0);
if(sero < de){
stype[i] = 2;
location[i] = start + sero;
}else{
stype[i] = 1;
location[i] = start - (de - sero);
}
}
}
/*
for(int i=0;i<n;i++){
if(i==0){
stype[i] = 1;
}else{
stype[i] = 2;
}
}
location[0] = first;
for(int i=1;i<n;i++){
int dis = getDistance(0,i);
location[i] = first + dis;
}
*/
}