#include "message.h"
#include <bits/stdc++.h>
using namespace std;
void send_message(vector<bool> M, vector<bool> C) {
  vector<bool> A(31, 0);
  vector<bool> B(31, 1);
  vector<int> ind;
  for (int i = 0; i < C.size() - 1; i++)
  {
    if(C[i])
    send_packet(B);
    else
    {
      send_packet(A);
      ind.push_back(i);
    }
  }
  int hanel = 0;
  while (M.size() % 16)
  {
    M.push_back(0);
    hanel++;
  }
  vector<bool> harc (31, 0);
  for (int i = 0; i < M.size(); i+=16)
  {
    for (int j = 0; j < 16; j++)
    {
      if(M[i + j])
      {
        harc[ind[j]] = 1;
      }
      else
      {
        harc[ind[j]] = 0;
      }
    }
    send_packet(harc);
  }
  vector<bool> verjin(31, 0);
  for (int i = 0; i < hanel; i++)
  {
    verjin[ind[i]] = 1;
  }
  send_packet(verjin);
}
vector<bool> receive_message(vector<vector<bool>> R) {
  vector<int> C;
  int Cqan = 0, Cqan1 = 0;
  for (int i = 0; i < 30; i++)
  {
    int qan = 0, qan1 = 0;
    for (int b = 0; b < R[i].size(); b++)
    {
      if(R[i][b])
      qan1++;
      else
      qan++;
    }
    if(qan > qan1)
    {
      C.push_back(0);
      Cqan++;
    }
    else
    {
      C.push_back(1);
      Cqan1++;
    }
  }
  if(Cqan == 15)
  {
    C.push_back(0);
  }
  else
  {
    C.push_back(1);
  }
  vector<bool> ans;
  for (int i = 30; i < R.size() - 1; i++)
  {
    for (int j = 0; j < R[i].size(); j++)
    {
      if(C[j] == 0)
      ans.push_back(R[i][j]);
    }
  }
  for (int i = 0; i < 31; i++)
  {
    if(C[i] == 0 && R.back()[i] == 1)
    ans.pop_back();
  }
  return ans;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |