Submission #599545

#TimeUsernameProblemLanguageResultExecution timeMemory
599545fvogel499Flight to the Ford (BOI22_communication)C++17
0 / 100
4 ms328 KiB
#include <cassert> #include "communication.h" #include <vector> // // --- Sample implementation for the task communication --- // // To compile this program with the sample grader, place: // communication.h communication_sample.cpp sample_grader.cpp // in a single folder, then open the terminal in this directory (right-click onto an empty spot in the directory, // left click on "Open in terminal") and enter e.g.: // g++ -std=c++17 communication_sample.cpp sample_grader.cpp // in this folder. This will create a file a.out in the current directory which you can execute from the terminal // as ./a.out // See task statement or sample_grader.cpp for the input specification // void encode(int N, int X) { assert(N == 3 && (X == 1 || X == 2 || X == 3)); if (X == 1) { send(0); send(0); send(0); send(0); } else if (X == 2) { send(1); send(1); send(1); send(1); } else { send(1); send(0); send(0); send(1); } } std::pair<int, int> decode(int N) { std::vector<int> over; for (int i = 0; i < (1<<4); i++) if (__builtin_popcount(i) <= 2) over.push_back(i); std::vector<int> who [1<<4]; for (int i : over) who[i].push_back(1); for (int i : over) who[i^(1+8)].push_back(2); for (int i : over) who[i^(1+2+4+8)].push_back(3); return {1, 2}; // for (int i = 0; i < (1<<4); i++) { // while (size(who[i]) < 2) { // who[i].push_back(1); // } // assert(size(who[i]) <= 2); // } // int comp = 0; // for (int i = 0; i < 4; i++) { // int u = receive(); // if (u) { // comp |= 1<<i; // } // } // return {who[comp][0], who[comp][1]}; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...