# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
14729 |
2015-06-15T04:35:47 Z |
gs13068 |
Rail (IOI14_rail) |
C++ |
|
3000 ms |
764 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 |
408 KB |
Output is correct |
4 |
Correct |
2 ms |
492 KB |
Output is correct |
5 |
Correct |
2 ms |
504 KB |
Output is correct |
6 |
Correct |
2 ms |
504 KB |
Output is correct |
7 |
Correct |
2 ms |
504 KB |
Output is correct |
8 |
Correct |
2 ms |
516 KB |
Output is correct |
9 |
Correct |
2 ms |
516 KB |
Output is correct |
10 |
Correct |
2 ms |
564 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
616 KB |
Output is correct |
2 |
Correct |
2 ms |
616 KB |
Output is correct |
3 |
Correct |
2 ms |
616 KB |
Output is correct |
4 |
Correct |
2 ms |
616 KB |
Output is correct |
5 |
Correct |
2 ms |
624 KB |
Output is correct |
6 |
Correct |
2 ms |
624 KB |
Output is correct |
7 |
Correct |
1 ms |
624 KB |
Output is correct |
8 |
Correct |
2 ms |
636 KB |
Output is correct |
9 |
Correct |
2 ms |
636 KB |
Output is correct |
10 |
Correct |
2 ms |
636 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Execution timed out |
3043 ms |
708 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Execution timed out |
3050 ms |
764 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |