제출 #868052

#제출 시각아이디문제언어결과실행 시간메모리
868052TAhmed33Flight to the Ford (BOI22_communication)C++17
15 / 100
23 ms3064 KiB
#include <bits/stdc++.h> #include <communication.h> using namespace std; vector <string> arr = { "1010", "1001", "1000", "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(1); send(1); send(0); } else { send(1); send(0); send(0); send(1); } } pair <int, int> decode (int n) { string a = "0000", b = "0110", c = "1001"; 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(c, 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...