답안 #14361

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
14361 2015-05-12T12:51:13 Z Fakeable 정전 (OJUZ10_blackout) C++
0 / 100
51 ms 3212 KB
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;
const int INF = -2147483648;
const int MAX_N = 150500;
int n,l,a[MAX_N],ans,covered = INF;
vector<int> v1,v2;
void input() {
    scanf("%d %d",&n,&l);
    for(int i=0;i<n;i++) scanf("%d",&a[i]);
    sort(a,a+n);
    return;
}
inline int calc(int x, int y) {
    int front, rear;
    if(x<y) {
        rear = x+l;
        front = max(covered, y-l);
        covered = x+l;
    }
    else {
        rear = y+l;
        front = max(covered, x-l);
        covered = y+l;
    }
    return max(rear - front,0);
}
void solve() {
    bool pushzero = true;
    v1.push_back(a[0]);
    for(int i=1;i<n;i++) {
        if(a[i]-a[i-1] < 2*l) {
            if(pushzero) v2.push_back(a[i]), pushzero = false;
            else v1.push_back(a[i]), pushzero = true;
        }
        else v1.push_back(a[i]);
    }
    int iter1 = 0, iter2 = 0;
    while(iter1 < v1.size() || iter2 < v2.size()) {
        //printf("%d %d\n",v1[iter1], v2[iter2]);
        if(iter1 == v1.size()) {
            ans += calc(v1[iter1-1], v2[iter2]);
            iter2 ++;
        }
        else if(iter2 == v2.size()) {
            ans += calc(v1[iter1], v2[iter2-1]);
            iter1 ++;
        }
        else {
            ans += calc(v1[iter1], v2[iter2]);
            if(v1[iter1] < v2[iter2]) iter1 ++;
            else iter2 ++;
        }
    }
    printf("%d\n",ans);
}
int main() {
    input();
    solve();
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 1796 KB Output isn't correct
2 Incorrect 0 ms 1796 KB Output isn't correct
3 Incorrect 0 ms 1796 KB Output isn't correct
4 Incorrect 0 ms 1796 KB Output isn't correct
5 Runtime error 0 ms 1792 KB SIGSEGV Segmentation fault
6 Runtime error 0 ms 1792 KB SIGSEGV Segmentation fault
7 Incorrect 0 ms 1796 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 1796 KB Output is correct
2 Correct 0 ms 1796 KB Output is correct
3 Correct 0 ms 1796 KB Output is correct
4 Incorrect 0 ms 1796 KB Output isn't correct
5 Correct 0 ms 1796 KB Output is correct
6 Correct 0 ms 1796 KB Output is correct
7 Incorrect 0 ms 1796 KB Output isn't correct
8 Correct 0 ms 1796 KB Output is correct
9 Incorrect 0 ms 1796 KB Output isn't correct
10 Correct 0 ms 1796 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 49 ms 2824 KB Output isn't correct
2 Incorrect 33 ms 2824 KB Output isn't correct
3 Incorrect 44 ms 2824 KB Output isn't correct
4 Incorrect 19 ms 2312 KB Output isn't correct
5 Incorrect 30 ms 2824 KB Output isn't correct
6 Incorrect 0 ms 1796 KB Output isn't correct
7 Incorrect 44 ms 2824 KB Output isn't correct
8 Incorrect 31 ms 2824 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 19 ms 2720 KB Output isn't correct
2 Correct 35 ms 3212 KB Output is correct
3 Incorrect 0 ms 1796 KB Output isn't correct
4 Correct 33 ms 2444 KB Output is correct
5 Correct 21 ms 3212 KB Output is correct
6 Correct 21 ms 2444 KB Output is correct
7 Incorrect 41 ms 3212 KB Output isn't correct
8 Correct 33 ms 2444 KB Output is correct
9 Correct 26 ms 2444 KB Output is correct
10 Incorrect 51 ms 2568 KB Output isn't correct
11 Correct 17 ms 2076 KB Output is correct
12 Incorrect 44 ms 3212 KB Output isn't correct
13 Incorrect 34 ms 2444 KB Output isn't correct
14 Incorrect 38 ms 2868 KB Output isn't correct
15 Incorrect 40 ms 3212 KB Output isn't correct