제출 #1184777

#제출 시각아이디문제언어결과실행 시간메모리
1184777Seb메시지 (IOI24_message)C++20
0 / 100
194 ms844 KiB
#include <bits/stdc++.h>
#include "message.h"

using namespace std;

typedef long long ll;

void send_message(std::vector<bool> M, std::vector<bool> C) {
    for (int i = 0; i < 31; i++) C[i] = !C[i];

    vector<bool> A(31, false), B(31, true);
    for (int i = 0; i < 31; i++) {
        if (C[i] == false) send_packet(A);
        else { send_packet(B); }
    }

    ll idx = 0;
    while (idx < M.size()) {
        A = vector<bool> (31, false);
        for (int i = 0; i < 31; i++)
            if (C[i]) A[i] = M[idx++];
        send_packet(A);
    }

    return;
}

std::vector<bool> receive_message(std::vector<std::vector<bool>> R) {
    vector<bool> C(31, false), V;
    ll idx = 0;
    for (auto &it : R) {
        ll cnt = 0;

        for (int i = 0; i < 31; i++) {
            if (it[i]) cnt++;
            if (C[i]) V.push_back(it[i]);
        }

        if (idx < 31) {
            C[idx++] = ((cnt > 15) ? true : false);
            V.clear();
        }
    }
    return V;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...