Submission #1246645

#TimeUsernameProblemLanguageResultExecution timeMemory
1246645mrivera11Message (IOI24_message)C++20
0 / 100
26 ms824 KiB
#include "message.h"
#include <bits/stdc++.h>
using namespace std;

vector<bool> C_global;
vector<vector<bool>> received_packets;

void send_message(vector<bool> M, vector<bool> C) {
  C_global = C;
  received_packets.clear();
  
  vector<int> safe_indices;
  for (int i = 0; i < 31; i++) {
    if (C[i] == 0) safe_indices.push_back(i);
  }

  int i = 0;
  while (i < (int)M.size()) {
    vector<bool> A(31, 0);
    for (int j = 0; j < 16 && i < (int)M.size(); j++, i++) {
      A[safe_indices[j]] = M[i];
    }
    auto tainted = send_packet(A);
    received_packets.push_back(tainted);
  }
}

vector<bool> receive_message(vector<vector<bool>> R) {
  vector<int> safe_indices;
  for (int i = 0; i < 31; i++) {
    if (C_global[i] == 0) safe_indices.push_back(i);
  }

  vector<bool> result;
  for (const auto& packet : R) {
    for (int idx : safe_indices) {
      result.push_back(packet[idx]);
      if ((int)result.size() >= 1024) break;
    }
    if ((int)result.size() >= 1024) break;
  }

  return result;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...