Submission #1192774

#TimeUsernameProblemLanguageResultExecution timeMemory
1192774NeltMessage (IOI24_message)C++20
0 / 100
168 ms848 KiB
#include "message.h" #include <bits/stdc++.h> #define endl "\n" #define ll long long using namespace std; void send_message(vector<bool> a, vector<bool> c) { vector<bool> msg(31, 0); vector<ll> fixed; for (ll i = 0; i < 30; i++) { send_packet(vector<bool>(31, c[i])); if (c[i] == 0) fixed.push_back(i); } for (ll i = 0; i < 16; i++) msg[fixed[i]] = (a.size() >> i & 1); send_packet(msg); for (ll i = 0; i < a.size(); i += 16) { for (ll j = 0; j + i < a.size() and j < 16; j++) msg[fixed[j]] = a[i + j]; send_packet(msg); } } vector<bool> receive_message(vector<vector<bool>> a) { vector<bool> c(31, 1); for (ll i = 0; i < 30; i++) { ll cnt0 = 0; for (ll j : a[i]) cnt0 += j == 0; if (cnt0 >= 16) c[i] = 0; else c[i] = 1; } if (count(c.begin(), c.end(), 0) != 16) c[30] = 0; vector<ll> fixed; ll sz = 0; for (ll i = 0; i < 31; i++) if (c[i] == 0) fixed.push_back(i); for (ll i = 0; i < 16; i++) if (a[30][fixed[i]]) sz += 1 << i; vector<bool> ans(sz); for (ll i = 0; i < sz; i++) ans[i] = a[31 + (i >> 4)][fixed[i & 15]]; return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...