Submission #868045

#TimeUsernameProblemLanguageResultExecution timeMemory
868045TAhmed33Flight to the Ford (BOI22_communication)C++17
0 / 100
11 ms332 KiB
#include <bits/stdc++.h> #include <communication.h> using namespace std; vector <string> arr = { "1010", "1001", "0101", "0100", "0010", "0001", "0000" }; string pp (string a, string b) { string ret; for (int i = 0; i < 4; i++) { if (a[i] == b[i]) ret += '0'; else ret += '1'; } return ret; } void encode (int n, int x) { if (x == 1) { send(0); send(0); send(0); send(0); } else if (x == 2) { send(0); send(0); send(1); send(0); } else { send(1); send(1); send(0); send(0); } } pair <int, int> decode (int n) { string a = "0000", b = "0010", c = "1100"; map <string, vector <int>> x; for (auto i : arr) x[pp(a, i)].push_back(1); for (auto i : arr) x[pp(b, i)].push_back(2); for (auto i : arr) x[pp(b, i)].push_back(3); string s; for (int i = 0; i < 4; i++) s += (char)(receive() + '0'); if (x[s].size() == 1) { return {x[s].front(), x[s].front()}; } else { return {x[s].front(), x[s].back()}; } } /* 0000 1100 0010 */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...