답안 #12667

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
12667 2014-12-28T09:09:49 Z kipa00 격자 보존하기 (GA9_preserve) C++
0 / 100
36 ms 2372 KB
#include <cstdio>
#include <queue>
using namespace std;

priority_queue<int, vector<int>, greater<int> > put;
int horse[100000];

int main() {
    int start, end, n, k, d;
    int i;
    scanf("%d %d %d", &n, &k, &d);
    for (i=0; i<k; ++i) {
        scanf("%d", &horse[i]);
    }
    start = horse[0] - 1;
    end = n - horse[k - 1];
    for (i=1; i<k; ++i) {
        put.push(horse[i] - horse[i - 1] - 1);
    }
    if (d == 1) printf("%d\n", (start > end) ? start : end);
    else if (d == 2) printf("%d\n", (start + end > put.top()) ? (start + end) : put.top());
    else {
        int now = 0;
        while (d >= 0) {
            int max = start, cost = 1, *ptr = &start;
            if (max < end) {
                max = end;
                ptr = &end;
            }
            if (max < put.top()) {
                max = put.top();
                ptr = 0;
                cost = 2;
            }
            if (d < cost) break;
            d -= cost;
            now += max;
            if (!ptr) {
                put.pop();
            } else *ptr = -1;
        }
        printf("%d\n", now);
    }
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 1600 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 1600 KB Output is correct
2 Incorrect 0 ms 1600 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 1600 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 16 ms 2372 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 36 ms 2372 KB SIGSEGV Segmentation fault
2 Halted 0 ms 0 KB -