Submission #12198

# Submission time Handle Problem Language Result Execution time Memory
12198 2014-12-23T08:30:48 Z qja0950 Rail (IOI14_rail) C++
30 / 100
106 ms 704 KB
#include "rail.h"

#include <algorithm>
#include <set>
using namespace std;

#define MAX_N 5005

struct FIRST{
    int dis;
    int p;
}First[MAX_N];
bool operator<(FIRST X, FIRST Y) {
    return X.dis < Y.dis;
}

set<int> C;
set<int>::iterator it;

void findLocation(int N, int first, int location[], int stype[])
{
    for(int i=1; i<N; i++) {
        First[i].dis = getDistance(0, i);
        First[i].p   = i;
    }
    sort(First+1, First+N);
    
    stype[0]     = 1;
    location[0]  = first;
    
    int second = First[1].p;
    stype[second]    = 2;
    location[second] = first + First[1].dis;
    
    int leftC = 0, rightD = second;
    C.insert(location[0]);
    
    for(int i=2; i<N; i++) {
        int nowp = First[i].p;
        
        int DisC = getDistance( leftC, nowp);
        int DisD = getDistance(rightD, nowp);
        
        int positionD = location[ leftC] + DisC;
        it = C.lower_bound(positionD);
        if(it != C.begin()) it--;
        int maxC = *it;
        if(location[rightD] - maxC + positionD - maxC == DisD) {
            stype[nowp]    = 2;
            location[nowp] = positionD;
        }else{
            int positionC = location[rightD] - DisD;
            stype[nowp]    = 1;
            location[nowp] = positionC;
        }
        
        
    }
}
# 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 432 KB Output is correct
4 Correct 4 ms 508 KB Output is correct
5 Correct 2 ms 508 KB Output is correct
6 Correct 2 ms 548 KB Output is correct
7 Correct 2 ms 592 KB Output is correct
8 Correct 3 ms 592 KB Output is correct
9 Correct 2 ms 592 KB Output is correct
10 Correct 2 ms 592 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 620 KB Output is correct
2 Correct 3 ms 620 KB Output is correct
3 Correct 2 ms 620 KB Output is correct
4 Correct 3 ms 620 KB Output is correct
5 Correct 2 ms 620 KB Output is correct
6 Correct 2 ms 620 KB Output is correct
7 Correct 2 ms 620 KB Output is correct
8 Correct 2 ms 620 KB Output is correct
9 Correct 2 ms 620 KB Output is correct
10 Correct 2 ms 620 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 92 ms 700 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 106 ms 704 KB Output isn't correct
2 Halted 0 ms 0 KB -