# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
581523 |
2022-06-22T17:26:34 Z |
wdjpng |
Rail (IOI14_rail) |
C++17 |
|
154 ms |
196424 KB |
#include "rail.h"
#include <bits/stdc++.h>
#define int long long
#define rep(i,n) for(int i = 0; i < n; i++)
#define all(a) a.begin(), a.end()
using namespace std;
void findLocation(signed n, signed first, signed lo[], signed sty[])
{
vector<vector<int>>dist(n, vector<int>(n));
vector<int>location(n);
vector<int>stype(n);
vector<int>d0(n);
int minn=1e12,mini=-1;
for(int i = 1; i < n; i++) {
int d = d0[i] = getDistance(0,i);
if(d<minn) {minn=d; mini=i;}
}
vector<int>dmini(n);
dmini[0]=d0[mini];
rep(i,n) if(i!=0&&i!=mini) dmini[i]=getDistance(i,mini);
int l=-1, maxl=0, r=-1, maxr=0;
rep(i,n)
{
if(d0[i]<dmini[i]&&maxr<d0[i])
{
maxr= d0[i];
r=i;
}
if(dmini[i]<d0[i]&&maxl<dmini[i])
{
maxl=dmini[i];
l=i;
}
}
if(l==-1) l=0;
if(r==-1) r=mini;
stype[0]=1;
stype[mini]=2;
location[0]=first;
location[mini]=first+d0[mini];
stype[r]=2;
stype[l]=1;
location[l]=location[mini]-dmini[l];
location[r]=location[0]+d0[r];
rep(i,n) {
if(i==0||i==mini||i==r||i==l) continue;
if(dmini[i]<d0[i])
{
int dist_to_l = getDistance(i,l);
if(dist_to_l+dmini[l]==dmini[i])
{
stype[i]=2;
location[i]=location[l]+dist_to_l;
} else {
stype[i]=1;
location[i]=location[mini]-dmini[i];
}
} else
{
int dist_to_r = getDistance(i,r);
if(dist_to_r+d0[r]==d0[i])
{
stype[i]=1;
location[i]=location[r]-dist_to_r;
} else {
stype[i]=2;
location[i]=location[0]+d0[i];
}
}
}
rep(i,n) sty[i]=stype[i];
rep(i,n) lo[i]=location[i];
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
340 KB |
Output is correct |
2 |
Correct |
1 ms |
468 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 |
468 KB |
Output is correct |
6 |
Correct |
1 ms |
340 KB |
Output is correct |
7 |
Correct |
1 ms |
468 KB |
Output is correct |
8 |
Correct |
1 ms |
468 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 |
468 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 |
468 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 |
148 ms |
196420 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
154 ms |
196424 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |