Submission #1298243

#TimeUsernameProblemLanguageResultExecution timeMemory
1298243alexiahMessage (IOI24_message)C++20
0 / 100
2 ms804 KiB
#include "message.h"
#include <bits/stdc++.h>
using namespace std;

/*void send_message(vector<bool> m, vector<bool> c){
  int s = m.size() , n = c.size();
  vector<bool> caux(n);
  for(int i = 0; i < n-1; i++){
    if(c[i] == 0){
      caux[i] = c[i+1];
    }
  }
  
}

vector<bool> receive_message(vector<vector<bool>> R){

}*/

void send_message(vector<bool> m, vector<bool> c) {
  int s = m.size() , n = c.size();
  vector <bool> nbool(31);
  bitset <16> ns (s);
  int j = 15;
  for(int i = 0; i < 31; i++){
    if(c[i] == 0){
      nbool[i] = ns[j];
      j--;
    }
  }
  send_packet(nbool);
  for(int i = 0; i < s; i++){
    if(c[i] == 1){
      vector<bool> aux (31 , 1);
      send_packet(aux);
    }
    else{
      vector<bool> aux (31 , 0);
      send_packet(aux);
    }
  }
  for(int v = 0; v < s;){
    vector<bool> aux(31);
    int x;
    for(x = v; x < s; x++){
      for(int i = 0; i < 31; i++){
        if(c[i] == 0){
          aux[i] = m[x];
        }
      }
      send_packet(aux);
    }
    v += x+1;
  }
  return;
}

vector<bool> receive_message(vector<vector<bool>> R) {
  vector<bool> ans , caux , nbool;
  nbool = R[0];
  int n = 0;
  for(int i = 1; i <= 31;i++){
    int ones = 0 , ceros = 0;
    for(int j = 0; j < 31; j++){
      if(R[i][j] == 1) ones++;
      else ceros++;
    }
    if(ones > ceros) caux.push_back(1);
    else caux.push_back(0);
  }
  for(int i = 0; i < caux.size(); i++){
    if(caux[i] == 0){
      n += pow(2 , i);
    }
  }
  for(int j = 32; j < R.size(); j++){
    for(int i = 0; i < n; i++){
      if(caux[i] == 0){
        ans.push_back(R[j][i]);
      }
    }
  }
  return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...