# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
14728 |
2015-06-15T04:35:36 Z |
gs13068 |
Rail (IOI14_rail) |
C++ |
|
196 ms |
780 KB |
#include "rail.h"
#include <algorithm>
std::pair<int,int> a[5555];
void findLocation(int n,int fir,int loc[],int stp[])
{
int lf,rf;
int i,j,l,r,ld,rd;
loc[0]=fir;
stp[0]=1;
if(n==1)return;
a[0].first=0;
a[0].second=0;
for(i=1;i<n;i++)
{
a[i].first=getDistance(0,i);
a[i].second=i;
}
std::sort(a+1,a+n);
loc[a[1].second]=loc[0]+a[1].first;
stp[a[1].second]=2;
l=0;r=a[1].second;
for(i=2;i<n;i++)
{
ld=getDistance(l,a[i].second);
rd=getDistance(r,a[i].second);
lf=rf=0;
for(j=0;j<i;j++)if(stp[a[j].second]==1&&loc[a[j].second]<loc[l]+ld&&loc[r]-loc[a[j].second]+loc[l]+ld-loc[a[j].second]==rd)lf=1;
for(j=0;j<i;j++)if(stp[a[j].second]==2&&loc[a[j].second]>loc[r]-rd&&loc[a[j].second]-loc[l]+loc[a[j].second]-loc[r]+rd==ld)rf=1;
if(lf&&rf)while(1);
if(lf)
{
loc[a[i].second]=loc[l]+ld;
stp[a[i].second]=2;
if(loc[a[i].second]>loc[r])r=a[i].second;
}
else
{
loc[a[i].second]=loc[r]-rd;
stp[a[i].second]=1;
if(loc[a[i].second]<loc[l])l=a[i].second;
}
}
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
248 KB |
Output is correct |
2 |
Correct |
2 ms |
356 KB |
Output is correct |
3 |
Correct |
2 ms |
356 KB |
Output is correct |
4 |
Correct |
2 ms |
408 KB |
Output is correct |
5 |
Correct |
2 ms |
464 KB |
Output is correct |
6 |
Correct |
2 ms |
484 KB |
Output is correct |
7 |
Correct |
2 ms |
484 KB |
Output is correct |
8 |
Correct |
2 ms |
484 KB |
Output is correct |
9 |
Correct |
2 ms |
544 KB |
Output is correct |
10 |
Correct |
2 ms |
560 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
560 KB |
Output is correct |
2 |
Correct |
2 ms |
560 KB |
Output is correct |
3 |
Correct |
2 ms |
560 KB |
Output is correct |
4 |
Correct |
2 ms |
560 KB |
Output is correct |
5 |
Correct |
2 ms |
560 KB |
Output is correct |
6 |
Correct |
2 ms |
560 KB |
Output is correct |
7 |
Correct |
2 ms |
560 KB |
Output is correct |
8 |
Correct |
2 ms |
560 KB |
Output is correct |
9 |
Correct |
3 ms |
560 KB |
Output is correct |
10 |
Correct |
2 ms |
560 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
196 ms |
780 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
196 ms |
780 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |