Submission #1140352

#TimeUsernameProblemLanguageResultExecution timeMemory
1140352efishel앵무새 (IOI11_parrots)C++17
81 / 100
2 ms840 KiB
#include "encoder.h"
#include "encoderlib.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using vll = vector <ll>;
using ii = pair <ll, ll>;
using vii = vector <ii>;

void encode (int n, int m[]) {
    auto f = [&](ll id) {
        return m[id/8]>>(id%8)&1;
    };
    ll cou0 = 0, cou1 = 0;
    for (ll id = 0; id < 8*n; id++) {
        (f(id) ? cou1 : cou0)++;
    }
    if (cou0 <= cou1) {
        for (ll id = 0; id < 8*n; id++) {
            if (!f(id)) send(id);
        }
        send(0);
        send(0);
    } else {
        for (ll id = 0; id < 8*n; id++) {
            if (f(id)) send(id);
        }
    }
}
#include "decoder.h"
#include "decoderlib.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using vll = vector <ll>;
using ii = pair <ll, ll>;
using vii = vector <ii>;

void decode (int n, int l, int x[]) {
    vll uh;
    auto f = [&](ll id) {
        uh[id/8] ^= 1<<(id%8);
    };
    if (count(x, x+l, 0) >= 2) { // cou0 <= cou1
        uh = vll(n, 0b11111111);
        for (ll i = 0; i < l; i++) {
            f(x[i]);
        }
    } else {
        uh = vll(n, 0b00000000);
        for (ll i = 0; i < l; i++) {
            f(x[i]);
        }
    }
    for (ll i = 0; i < n; i++) {
        output(uh[i]);
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...