| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 1165105 | Sang | Broken Device (JOI17_broken_device) | C++20 | 30 ms | 1560 KiB | 
#include "Annalib.h"
#include<bits/stdc++.h>
using namespace std;
#define FOR(i, a, b) for (int i = (a), _b = (b); i <= _b; i++)
#define FORD(i, a, b) for (int i = (a), _b = (b); i >= _b; i--)
#define fi first
#define se second
#define pb push_back
#define ALL(a) (a).begin(), (a).end()
#define task "kbsiudthw"
typedef vector<int> vi;
typedef pair<int, int> ii;
typedef pair<int, ii> pii;
void Anna(int n, long long x, int K, int P[]){
    vector<int> bit, marked(n, 0);
    while (x){
        bit.pb(x%3);
        x /= 3;
    }
    reverse(ALL(bit));
    FOR (i, 0, K - 1) marked[P[i]] = 1;
    for (int i = 0; i < n; i += 3){
        if (marked[i] + marked[i+1] + marked[i+2] > 1 || bit.empty()){
            Set(i, 0); Set(i+1, 0); Set(i+2, 0);
            continue;
        }
        int x = bit.back(); bit.pop_back();
        if (x == 0){
            Set(i, marked[i+2]); Set(i+1, marked[i+2]); Set(i+2, marked[i+2]^1);
        }
        if (x == 1){
            Set(i, marked[i] ^ 1); Set(i+1, marked[i]); Set(i+2, marked[i]);
        }
        if (x == 2){
            Set(i, marked[i+1]); Set(i+1, marked[i+1]^1); Set(i+2, marked[i+1]);
        }
    }
}
#include "Brunolib.h"
#include<bits/stdc++.h>
using namespace std;
#define FOR(i, a, b) for (int i = (a), _b = (b); i <= _b; i++)
#define FORD(i, a, b) for (int i = (a), _b = (b); i >= _b; i--)
#define fi first
#define se second
#define pb push_back
#define ALL(a) (a).begin(), (a).end()
#define task "kbsiudthw"
typedef vector<int> vi;
typedef pair<int, int> ii;
typedef pair<int, ii> pii;
long long Bruno(int n, int A[]){
    long long po3 = 1, ans = 0;
    for (int i = 0; i < n; i += 3){
        string t;
        FOR (j, 0, 2) t += (A[i + j] + '0');
        if (t == "000") continue;
        if (t == "001" || t == "110"){
            po3 *= 3;
        }
        if (t == "011" || t == "100"){
            ans += po3;
            po3 *= 3;
        }
        if (t == "010" || t == "101"){
            ans += 2 * po3;
            po3 *= 3;
        }
    }
    return ans;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
