Submission #288977

# Submission time Handle Problem Language Result Execution time Memory
288977 2020-09-02T08:59:40 Z fishy15 Broken Device (JOI17_broken_device) C++14
51 / 100
51 ms 3072 KB
#include "Annalib.h"
#include <vector>
using namespace std;

void Anna(int N, long long X, int K, int P[]) {
    vector<bool> works(N, true);
    vector<bool> toset(N, false);
    
    for (int i = 0; i < K; i++) {
        works[P[i]] = false;
    }

    for (int i = 0; i < N; i += 3) {
        int cnt = works[i] + works[i + 1] + works[i + 2];
        if (cnt == 3) {
            toset[i] = 1;
            toset[i + 1] = X & 1;
            X >>= 1;
            toset[i + 2] = X & 1;
            X >>= 1;
        } else if (cnt == 2) {
            if (X & 1) {
                if (works[i + 1]) {
                    toset[i + 1] = 1;
                } else {
                    toset[i + 2] = 1;
                }
                X >>= 1;
            } else {
                if (!works[i]) {
                    toset[i + 1] = 1;
                    toset[i + 2] = 1;
                    X >>= 1;
                } else if (X % 4 == 0) {
                    toset[i] = 1;
                    X >>= 2;
                }
            }
        }
    }

    for (int i = 0; i < N; i++) {
        Set(i, toset[i]);
    }
}
#include "Brunolib.h"
#define ll long long

long long Bruno(int N, int A[]){
    int dig = 0;
    ll ans = 0;

    for (int i = 0; i < N; i += 3) {
        if (dig > 60) break;
        if (A[i]) {
            ans += (1LL << dig) * A[i + 1];
            dig++;
            ans += (1LL << dig) * A[i + 2];
            dig++;
        } else {
            if (A[i] || A[i + 1] || A[i + 2]) {
                int v = A[i + 1] ^ A[i + 2];
                ans += (1LL << dig) * v;
                dig++;
            }
        }
    }

    return ans;
}
# Verdict Execution time Memory Grader output
1 Partially correct 44 ms 3072 KB Output is partially correct - L* = 23
2 Partially correct 50 ms 2864 KB Output is partially correct - L* = 21
3 Partially correct 46 ms 3056 KB Output is partially correct - L* = 21
4 Partially correct 41 ms 3056 KB Output is partially correct - L* = 21
5 Partially correct 44 ms 3072 KB Output is partially correct - L* = 20
6 Partially correct 44 ms 3056 KB Output is partially correct - L* = 22
7 Partially correct 43 ms 3056 KB Output is partially correct - L* = 23
8 Partially correct 44 ms 3056 KB Output is partially correct - L* = 21
9 Partially correct 45 ms 3072 KB Output is partially correct - L* = 20
10 Partially correct 43 ms 3064 KB Output is partially correct - L* = 23
11 Partially correct 41 ms 3056 KB Output is partially correct - L* = 22
12 Partially correct 41 ms 3072 KB Output is partially correct - L* = 24
13 Partially correct 50 ms 3056 KB Output is partially correct - L* = 21
14 Partially correct 41 ms 3072 KB Output is partially correct - L* = 22
15 Partially correct 41 ms 3056 KB Output is partially correct - L* = 20
16 Partially correct 41 ms 2896 KB Output is partially correct - L* = 22
17 Partially correct 41 ms 3072 KB Output is partially correct - L* = 20
18 Partially correct 48 ms 3072 KB Output is partially correct - L* = 23
19 Partially correct 44 ms 2856 KB Output is partially correct - L* = 22
20 Partially correct 47 ms 2928 KB Output is partially correct - L* = 21
21 Partially correct 45 ms 3072 KB Output is partially correct - L* = 20
22 Partially correct 51 ms 3056 KB Output is partially correct - L* = 20
23 Partially correct 42 ms 3008 KB Output is partially correct - L* = 20
24 Partially correct 42 ms 3072 KB Output is partially correct - L* = 23
25 Partially correct 42 ms 3040 KB Output is partially correct - L* = 22
26 Partially correct 46 ms 3056 KB Output is partially correct - L* = 22
27 Partially correct 43 ms 3064 KB Output is partially correct - L* = 23
28 Partially correct 46 ms 3056 KB Output is partially correct - L* = 21
29 Partially correct 43 ms 3072 KB Output is partially correct - L* = 23
30 Partially correct 43 ms 3056 KB Output is partially correct - L* = 21
31 Partially correct 43 ms 3008 KB Output is partially correct - L* = 21
32 Partially correct 44 ms 3056 KB Output is partially correct - L* = 21
33 Partially correct 42 ms 3056 KB Output is partially correct - L* = 21
34 Partially correct 43 ms 3072 KB Output is partially correct - L* = 22
35 Partially correct 41 ms 3056 KB Output is partially correct - L* = 20
36 Partially correct 42 ms 3056 KB Output is partially correct - L* = 22
37 Partially correct 42 ms 3072 KB Output is partially correct - L* = 20
38 Partially correct 41 ms 2928 KB Output is partially correct - L* = 22
39 Partially correct 41 ms 3072 KB Output is partially correct - L* = 21
40 Partially correct 43 ms 3056 KB Output is partially correct - L* = 22