QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#567030#9237. MessageaaaaaCompile Error//C++142.2kb2024-09-16 05:26:022024-09-16 05:26:02

Judging History

你现在查看的是最新测评结果

  • [2024-09-16 05:26:02]
  • 评测
  • [2024-09-16 05:26:02]
  • 提交

answer

#include <bits/stdc++.h>
#include "message.h"

using namespace std;

typedef long long ll;

vector<bool> info[67];
ll nxt[31];
bool bb[31];

void send_message(vector<bool> M, vector<bool> C) {
    M.push_back(true);
    while (M.size() < 1024) {
        M.push_back(false);
    }
    for (ll i=1; i<67; i++) {
        info[i].resize(31);
    }
    ll prev, k=0;
    for (ll i=0; i<C.size(); i++) {
        if (!C[i]) {
            prev = i-31;
        }
    }
    for (ll i=0; i<C.size(); i++) {
        if (!C[i]) {
            ll distance = i-prev;
            for (ll j=1; j<distance; j++) {
                info[j][i] = 1;
            }
            for (ll j=distance+1; j<67; j++) {
                info[j][i] = M[k++];
            }
            prev = i;
        }
    }
    for (ll i=1; i<67; i++) {
        send_packet(info[i]);
    }
}

vector<bool> receive_message(vector<vector<bool>> R) {
    for (ll i=1; i<67; i++) {
        info[i] = R[i-1];
    }
    for (ll i=0; i<31; i++) {
        ll current = 1;
        while (current < 67 && info[current][i]) {
            ++current;
        }
        nxt[i] = (i+31-current%31)%31;
    }
    for (ll i=0; i<31; i++) {
        ll cycle = i;
        ll flag = 0;
        for (ll j=1; j<17; j++) {
            cycle = nxt[cycle];
            if (cycle == i) {
                if (j == 16) {
                    flag = 1;
                }
                else {
                    flag = -1;
                    break;
                }
            }
        }
        if (flag == 1) {
            cycle = i;
            for (ll j=1; j<17; j++) {
                cycle = nxt[cycle];
                bb[cycle] = 1;
            }
            break;
        }
    }
    
    vector<bool> answer;
    answer.clear();
    for (ll i=0; i<31; i++) {
        if (bb[i]) {
            ll current = 1;
            while (current < 67 && info[current][i]) {
                ++current;
            }
            for (ll j=current+1; j<67; j++) {
                answer.push_back(info[j][i]);
            }
        }
    }
    
    while (!answer.back()) {
        answer.pop_back();
    }
    answer.pop_back();
    return answer;
}

Details

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) {
      |             ^~~