QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#553805 | #9237. Message | A_programmer | Compile Error | / | / | C++14 | 1.4kb | 2024-09-08 20:33:26 | 2024-09-08 20:33:26 |
Judging History
answer
#include "message.h"
#include <bits/stdc++.h>
using namespace std;
typedef vector<bool> vi;
vi vl[70];
int nxt[40];
bool p[40];
void send_message(vi M, vi C)
{
M.emplace_back(1);
while (M.size() < 1025) M.emplace_back(0);
for (int i = 1; i <= 66; i++) vl[i].clear(), vl[i].resize(31);
int lst, k = 0;
for (int i = 0; i < C.size(); i++) if (!C[i]) lst = i - 31;
for (int i = 0; i < C.size(); i++)
if (!C[i])
{
int dis = i - lst;
for (int j = 1; j < dis; j++) vl[j][i] = 1;
for (int j = dis + 1; j <= 66; j++) vl[j][i] = M[k++];
lst = i;
}
for (int i = 1; i <= 66; i++) send_packet(vl[i]);
}
vi receive_message(vector<vi> R)
{
for (int i = 1; i <= 66; i++) vl[i] = R[i - 1];
for (int i = 0; i < 31; i++)
{
int pos = 1;
while (pos <= 66 && vl[pos][i]) pos++;
nxt[i] = (i + 31 - pos % 31) % 31;
}
for (int i = 0; i < 31; i++)
{
int x = i, Fl = 0;
for (int j = 1; j <= 16; j++)
{
x = nxt[x];
if (x == i)
{
if (j == 16) Fl = 1;
else { Fl = -1; break; }
}
}
if (Fl == 1)
{
x = i;
for (int j = 1; j <= 16; j++) x = nxt[x], p[x] = 1;
break;
}
}
vi res; res.clear();
for (int i = 0; i < 31; i++)
if (p[i])
{
int pos = 1;
while (pos <= 66 && vl[pos][i]) pos++;
for (int j = pos + 1; j <= 66; j++) res.emplace_back(vl[j][i]);
}
while (!res.back()) res.pop_back();
res.pop_back(); return res;
}
詳細信息
stub.cpp: In function ‘int {anonymous}::sz(const C&)’: stub.cpp:27:52: error: ‘size’ is not a member of ‘std’; did you mean ‘size_t’? 27 | template<class C> int sz(const C& c) { return std::size(c); } | ^~~~ | size_t stub.cpp: In function ‘void {anonymous}::write_int_array(const int*, int)’: stub.cpp:70:13: warning: init-statement in selection statements only available with ‘-std=c++17’ or ‘-std=gnu++17’ 70 | if (int ret = fwrite(arr, sizeof(int), len, fout); len != ret) { | ^~~ stub.cpp: In function ‘void {anonymous}::read_int_array(int*, int)’: stub.cpp:105:13: warning: init-statement in selection statements only available with ‘-std=c++17’ or ‘-std=gnu++17’ 105 | if (int ret = fread(arr, sizeof(int), len, fin); len != ret) { | ^~~