QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#604315 | #9237. Message | bykem | 0 | 0ms | 0kb | C++20 | 1.4kb | 2024-10-02 09:28:48 | 2024-10-02 09:28:48 |
Judging History
answer
#include "message.h"
using std::vector;
void send_message(vector<bool> M, vector<bool> C) {
vector<int> d(31, 0);
for (int i = 0; i < 31; ++i) {
if (!C[i]) {
int k = 1;
for (; C[(i + k) % 31]; ++k) {
}
d[i] = k;
}
}
M.push_back(1);
for (; M.size() < 1025; M.push_back(0)) {
}
int c = 0;
for (int i = 0; i < 66; ++i) {
vector<bool> r(31, 0);
for (int j = 0; j < 31; ++j) {
if (!C[j]) {
if (d[j]) {
r[j] = !--d[j];
} else {
r[j] = M[c++];
}
}
}
send_packet(r);
}
}
vector<bool> receive_message(vector<vector<bool>> R) {
vector<int> d(31, 0);
for (int i = 0; i < 66; ++i) {
for (int j = 0; j < 31; ++j) {
if (!d[j] && R[i][j]) {
d[j] = i + 1;
}
}
}
for (int i = 0; i < 31; ++i) {
if (d[i] >= 31) {
d[i] = 0;
}
}
vector<int> l;
for (int s = 0; s < 31; ++s) {
l.clear();
int x = s;
do {
if (!d[x]) {
break;
}
l.push_back(x);
} while ((x = (x + d[x]) % 31) != s);
if (l.size() == 16) {
break;
}
}
vector<bool> M;
for (int i = 0; i < 66; ++i) {
for (int j : l) {
if (i >= d[j]) {
M.push_back(R[i][j]);
}
}
}
for (; !M.back(); M.pop_back()) {
}
M.pop_back();
return M;
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 0
Instance #1 Time Limit Exceeded
Test #1:
score: 0
Instance #1 Time Limit Exceeded
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0 ing with message 'manual RTE, cant read int from grader' Quitting with result code 1
result:
Subtask #2:
score: 0
Instance #1 Time Limit Exceeded
Test #8:
score: 0
Instance #1 Time Limit Exceeded
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0 ing with message 'manual RTE, cant read int from grader' Quitting with result code 1