Submission #14729

# Submission time Handle Problem Language Result Execution time Memory
14729 2015-06-15T04:35:47 Z gs13068 Rail (IOI14_rail) C++
30 / 100
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 -