Submission #599778

#TimeUsernameProblemLanguageResultExecution timeMemory
599778MounirFlight to the Ford (BOI22_communication)C++17
0 / 100
31 ms204 KiB
#include "communication.h" #include <bits/stdc++.h> #define all(v) v.begin(), v.end() #define chmax(x, v) x = max(x, v) #define chmin(x, v) x = min(x, v) #define pb push_back #define pii pair<int, int> #define sz(x) (int)x.size() #define x first #define y second using namespace std; void encode(int N, int X){ if (X == 1){ for (int i = 0; i < 6; ++i) int ans = send(0); } else if (X == 2){ for (int i = 0; i < 6; ++i) int ans = send(1); } else { for (int i = 0; i < 6; ++i) int ans = send(i%3 == 0); } } pii decode(int N){ vector<int> vals; for (int i = 0; i < 6; ++i) vals.pb(receive()); set<int> possibles; for (int mask = 0; mask < (1 << 6); ++mask){ bool valid = true; vector<int> inds; for (int i = 0; i < 6; ++i){ if ((mask&(1 << i)) > 0) inds.pb(i); } for (int i = 0; i < sz(inds) - 1; ++i) valid &= (inds[i] != inds[i + 1] - 1); if (!valid) continue; vector<int> change = vals; for (int ind : inds) change[ind] ^= 1; bool un = true, deux = true, trois = true; for (int i = 0; i < 6; ++i){ un &= change[i] == 0; deux &= change[i] == 1; trois &= (change[i]^(i%3 == 0)); } if (un) possibles.insert(1); if (deux) possibles.insert(2); if (trois) possibles.insert(3); } vector<int> v; for (int a : possibles) v.pb(a); if (sz(v) == 2) return {v[0], v[1]}; else if (sz(v) == 1) return {v[0], 1}; else return {-1, -1}; }

Compilation message (stderr)

communication.cpp: In function 'void encode(int, int)':
communication.cpp:16:23: warning: unused variable 'ans' [-Wunused-variable]
   16 |                   int ans = send(0);
      |                       ^~~
communication.cpp:20:23: warning: unused variable 'ans' [-Wunused-variable]
   20 |                   int ans = send(1);
      |                       ^~~
communication.cpp:24:23: warning: unused variable 'ans' [-Wunused-variable]
   24 |                   int ans = send(i%3 == 0);
      |                       ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...