답안 #907420

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
907420 2024-01-15T14:01:01 Z andrey27_sm Broken Device (JOI17_broken_device) C++17
0 / 100
47 ms 3012 KB
#include <bits/stdc++.h>
#include <Annalib.h>
using namespace std;
 
void Anna( int N, long long X, int K, int P[] ){
    vector<int> L(N,-2);
    stack<int> B;
    while(X) B.push(X&1), X>>=1;
    set<int> used;
    for(int i = 0;i < K;i++) Set(P[i],0),L[P[i]] = -1, used.insert(P[i]);
    for(int i = 0;i < N;i++){
        if(L[i] == -1) continue;
        int cnt = 0;
        while(i+cnt < N and L[i+cnt] == -2) cnt++;
        // cout << i << "-" << i+cnt-1 << "\n";
        int Pcnt = 0;
        if(cnt >= 68 and B.size() >= 60) {
            cnt-=68;
            for(int j = 0;j < 7;j++) {
                used.insert(i+j);
                Set(i+j,1);
            }
            used.insert(i+7);
            Set(i+7,0);
            for(int j = 0;j < 60;j++) {
                used.insert(i+8+j);
                Set(i+8+j,B.top());
                B.pop();
            }
            Pcnt++;
            i += 68;
        }
        if(cnt >= 39 and B.size() >= 32) {
            cnt-=39;
            for(int j = 0;j < 6;j++) {
                used.insert(i+j);
                Set(i+j,1);
            }
            used.insert(i+6);
            Set(i+6,0);
            for(int j = 0;j < 32;j++) {
                used.insert(i+7+j);
                Set(i+7+j,B.top());
                B.pop();
            }
            Pcnt++;
            i += 39;
        }
        if(cnt >= 22 and B.size() >= 16) {
            cnt-=22;
            for(int j = 0;j < 5;j++) {
                used.insert(i+j);
                Set(i+j,1);
            }
            used.insert(i+5);
            Set(i+5,0);
            for(int j = 0;j < 16;j++) {
                used.insert(i+6+j);
                Set(i+6+j,B.top());
                B.pop();
            }
            Pcnt++;
            i += 22;
        }
        if(cnt >= 13 and B.size() >= 8) {
            cnt-=13;
            for(int j = 0;j < 4;j++) {
                used.insert(i+j);
                Set(i+j,1);
            }
            used.insert(i+4);
            Set(i+4,0);
            for(int j = 0;j < 8;j++) {
                used.insert(i+5+j);
                Set(i+5+j,B.top());
                B.pop();
            }
            Pcnt++;
            i += 13;
        }
        if(cnt >= 8 and B.size() >= 4) {
            cnt-=8;
            for(int j = 0;j < 3;j++) {
                used.insert(i+j);
                Set(i+j,1);
            }
            used.insert(i+3);
            Set(i+3,0);
            for(int j = 0;j < 4;j++) {
                used.insert(i+4+j);
                Set(i+4+j,B.top());
                B.pop();
            }
            Pcnt++;
            i += 8;
        }
        if(cnt >= 5 and B.size() >= 2) {
            cnt-=5;
            for(int j = 0;j < 2;j++) {
                used.insert(i+j);
                Set(i+j,1);
            }
            used.insert(i+2);
            Set(i+2,0);
            for(int j = 0;j < 2;j++) {
                used.insert(i+3+j);
                Set(i+3+j,B.top());
                B.pop();
            }
            Pcnt++;
            i += 5;
        }
        if(cnt >= 3 and B.size() >= 1) {
            cnt-=3;
            used.insert(i);
            used.insert(i+1);
            used.insert(i+2);
            Set(i,1);
            Set(i+1,0);
            Set(i+2,B.top());
            B.pop();
            Pcnt++;
            i += 3;
        }
        if(Pcnt) i--;
    }
    for(int i = 0;i < N;i++) {
        if(used.count(i)) continue;
        Set(i,0);
    }
}
 
#include <bits/stdc++.h>
#include <Brunolib.h>
using namespace std;
long long Bruno( int N, int A[] ){
    long long X = 0;
    for(int i = 0;i < N-1;i++){
        if(A[i] == 0) continue;
        int cnt = 0;
        while(A[i] == 1) cnt++,i++;
        i++;
        for(int j = 0; j < (1<<(cnt-1));j++) {
            X<<=1;
            X|=A[i+j];
        }
        i+=(1<<(cnt-1))-1;
    }
    return X;
}
# 결과 실행 시간 메모리 Grader output
1 Partially correct 46 ms 2872 KB Output isn't correct - L* = 0
2 Partially correct 40 ms 2776 KB Output isn't correct - L* = 0
3 Partially correct 34 ms 2744 KB Output isn't correct - L* = 0
4 Partially correct 34 ms 2676 KB Output isn't correct - L* = 0
5 Partially correct 38 ms 2716 KB Output isn't correct - L* = 0
6 Partially correct 43 ms 2776 KB Output isn't correct - L* = 0
7 Partially correct 43 ms 2696 KB Output isn't correct - L* = 0
8 Partially correct 38 ms 2676 KB Output isn't correct - L* = 0
9 Partially correct 34 ms 2676 KB Output isn't correct - L* = 0
10 Partially correct 35 ms 2748 KB Output isn't correct - L* = 0
11 Partially correct 34 ms 2716 KB Output isn't correct - L* = 0
12 Partially correct 36 ms 2764 KB Output isn't correct - L* = 0
13 Partially correct 43 ms 2696 KB Output isn't correct - L* = 0
14 Partially correct 35 ms 2828 KB Output isn't correct - L* = 0
15 Partially correct 38 ms 2764 KB Output isn't correct - L* = 0
16 Partially correct 44 ms 2964 KB Output isn't correct - L* = 0
17 Partially correct 34 ms 2952 KB Output isn't correct - L* = 0
18 Partially correct 34 ms 2620 KB Output isn't correct - L* = 0
19 Partially correct 43 ms 2856 KB Output isn't correct - L* = 0
20 Partially correct 36 ms 3012 KB Output isn't correct - L* = 0
21 Partially correct 34 ms 2768 KB Output isn't correct - L* = 0
22 Partially correct 34 ms 2696 KB Output isn't correct - L* = 0
23 Partially correct 36 ms 2780 KB Output isn't correct - L* = 0
24 Partially correct 47 ms 2788 KB Output isn't correct - L* = 0
25 Partially correct 35 ms 2752 KB Output isn't correct - L* = 0
26 Partially correct 40 ms 2684 KB Output isn't correct - L* = 0
27 Partially correct 44 ms 2840 KB Output isn't correct - L* = 0
28 Partially correct 40 ms 2808 KB Output isn't correct - L* = 0
29 Partially correct 34 ms 2852 KB Output isn't correct - L* = 0
30 Partially correct 38 ms 2804 KB Output isn't correct - L* = 0
31 Partially correct 35 ms 2740 KB Output isn't correct - L* = 0
32 Partially correct 35 ms 2788 KB Output isn't correct - L* = 0
33 Partially correct 44 ms 2684 KB Output isn't correct - L* = 0
34 Partially correct 34 ms 2736 KB Output isn't correct - L* = 0
35 Partially correct 44 ms 2676 KB Output isn't correct - L* = 0
36 Partially correct 36 ms 2996 KB Output isn't correct - L* = 0
37 Partially correct 34 ms 2688 KB Output isn't correct - L* = 0
38 Partially correct 34 ms 2740 KB Output isn't correct - L* = 0
39 Partially correct 45 ms 2532 KB Output isn't correct - L* = 0
40 Partially correct 41 ms 2680 KB Output isn't correct - L* = 0