Submission #1221525

#TimeUsernameProblemLanguageResultExecution timeMemory
1221525nibertMessage (IOI24_message)C++17
Compilation error
0 ms0 KiB
#include <vector> using namespace std; // Provided by judge extern vector<bool> send_packet(vector<bool> pkt); extern vector<vector<bool>> receive_packets(); // Generator matrix for (31,16) code — rows are 16 vectors of length 31 static const unsigned int GEN[16] = { 0x7FFE0000u, 0x3FFF0000u, 0x1FFF8000u, 0x0FFFc000u, 0x07FFE000u, 0x03FFF000u, 0x01FFF800u, 0x00FFFc00u, 0x007FFE00u, 0x003FFF00u, 0x001FFF80u, 0x000FFFc0u, 0x0007FFE0u, 0x0003FFF0u, 0x0001FFF8u, 0x0000FFFcu }; void send_message(vector<bool> M, vector<bool> C_unused) { int L = M.size(); int blocks = (L + 15) / 16; for (int b = 0; b < blocks; ++b) { uint32_t word = 0; for (int i = 0; i < 16; ++i) { int idx = b * 16 + i; word |= (idx < L && M[idx]) ? (1u << i) : 0u; } vector<bool> pkt(31); for (int i = 0; i < 31; ++i) { int bit = 0; for (int j = 0; j < 16; ++j) { if ((word >> j) & 1u) bit ^= (GEN[j] >> i) & 1u; } pkt[i] = bit; } send_packet(pkt); } } vector<bool> receive_message(vector<vector<bool>> R) { int blocks = R.size(); vector<bool> out; out.reserve(blocks * 16); for (auto &pkt : R) { uint32_t word = 0; for (int bit = 0; bit < 16; ++bit) { int val = 0; for (int i = 0; i < 31; ++i) { if ((GEN[bit] >> i) & 1u) val ^= pkt[i]; } word |= (val & 1) << bit; } for (int i = 0; i < 16; ++i) out.push_back((word >> i) & 1); } return out; }

Compilation message (stderr)

message.cpp: In function 'void send_message(std::vector<bool>, std::vector<bool>)':
message.cpp:20:9: error: 'uint32_t' was not declared in this scope
   20 |         uint32_t word = 0;
      |         ^~~~~~~~
message.cpp:2:1: note: 'uint32_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?
    1 | #include <vector>
  +++ |+#include <cstdint>
    2 | using namespace std;
message.cpp:23:13: error: 'word' was not declared in this scope
   23 |             word |= (idx < L && M[idx]) ? (1u << i) : 0u;
      |             ^~~~
message.cpp:29:22: error: 'word' was not declared in this scope
   29 |                 if ((word >> j) & 1u) bit ^= (GEN[j] >> i) & 1u;
      |                      ^~~~
message.cpp: In function 'std::vector<bool> receive_message(std::vector<std::vector<bool> >)':
message.cpp:42:9: error: 'uint32_t' was not declared in this scope
   42 |         uint32_t word = 0;
      |         ^~~~~~~~
message.cpp:42:9: note: 'uint32_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?
message.cpp:48:13: error: 'word' was not declared in this scope
   48 |             word |= (val & 1) << bit;
      |             ^~~~
message.cpp:51:28: error: 'word' was not declared in this scope
   51 |             out.push_back((word >> i) & 1);
      |                            ^~~~