QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#696605#9237. Messageivan_alexeev#29.314 282ms4132kbC++233.3kb2024-10-31 23:45:582024-10-31 23:45:59

Judging History

This is the latest submission verdict.

  • [2024-10-31 23:45:59]
  • Judged
  • Verdict: 29.314
  • Time: 282ms
  • Memory: 4132kb
  • [2024-10-31 23:45:58]
  • Submitted

answer

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

using namespace std;

#ifdef lisie_bimbi
#else
#define endl '\n'
#endif
typedef long long ll;


const ll inf = 1'000'000'000;

#ifdef lisie_bimbi
const int PACKET_SIZE = 31;
const int CALLS_CNT_LIMIT = 100;

int calls_cnt;
std::vector<bool> C(PACKET_SIZE);
std::vector<std::vector<bool>> R;


void quit(const char* message) {
  printf("%s\n", message);
  exit(0);
}


std::vector<bool> taint(const std::vector<bool>& A) {
  std::vector<bool> B = A;
  bool bit = 0;
  for (int i = 0; i < PACKET_SIZE; i++)
    if (C[i] == 1) {
      B[i] = bit;
      bit = !bit;
    }
  return B;
}

std::vector<bool> send_packet(std::vector<bool> A) {
  calls_cnt++;
  if (calls_cnt > CALLS_CNT_LIMIT)
    quit("Too many calls");
  if ((int)A.size() != PACKET_SIZE)
    quit("Invalid argument");

  std::vector<bool> B = taint(A);
  R.push_back(B);
  return B;
}



void run_scenario() {
    R.clear();
    calls_cnt = 0;

    int S;
    assert(1 == scanf("%d", &S));
    std::vector<bool> M(S);
    for (int i = 0; i < S; i++) {
      int bit;
      assert(1 == scanf("%d", &bit));
      assert((bit == 0) || (bit == 1));
      M[i] = bit;
    }

    for (int i = 0; i < PACKET_SIZE; i++) {
      int bit;
      assert(1 == scanf("%d", &bit));
      assert((bit == 0) || (bit == 1));
      C[i] = bit;
    }

    send_message(M, C);
    std::vector<bool> D = receive_message(R);

    int K = (int)R.size();
    int L = (int)D.size();
    printf("%d %d\n", K, L);
    for (int i = 0; i < L; i++)
        printf("%s%d", (i == 0 ? "" : " "), (D[i] ? 1 : 0));
    printf("\n");
}




int main() {
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    int T;
    assert(1 == scanf("%d", &T));
    for (int i = 1; i <= T; i++)
      run_scenario();
}
#endif

mt19937 rnd(239);

void send_message(vector<bool> m, vector<bool> c){
    for(int i = 0; i <= 30; i++){
        c[i] = !c[i];
    }
    int n = m.size();
    int cnt = 31;
    vector<bool> t(31, 1);
    vector<int> z;
    for(int i = 0; i <= 30; i++){
        if(c[i]){
            z.push_back(i);
        }
    }
    for(int i = 0; i <= 30; i++){
        vector<bool> s(31);
        for(auto j : z){
            s[j] = c[i];
        }
        send_packet(s);
    }
    vector<bool> m1;
    for(int i = 0; i <= 10; i++){
        m1.push_back((n >> i) & 1);
    }
    for(auto i : m){
        m1.push_back(i);
    }
    while(m1.size() % 16 != 0){
        m1.push_back(0);
    }
    for(int i = 0; i < m1.size(); i += 16){
        vector<bool> s(31);
        for(int j = 0; j < 16; j++){
            s[z[j]] = m1[i + j];
        }
        send_packet(s);
    }
}

vector<bool> receive_message(vector<vector<bool>> r){
    vector<int> c(31);
    reverse(r.begin(), r.end());
    for(int i = 0; i <= 30; i++){
        int cnt = 0;
        for(auto j : r.back()){
            cnt += j;
        }
        c[i] = (cnt >= 16);
        r.pop_back();
    }
    vector<int> z;
    for(int i = 0; i <= 30; i++){
        if(c[i]){
            z.push_back(i);
        }
    }
    vector<bool> m1;
    while(!r.empty()){
        for(int i = 0; i <= 15; i++){
            m1.push_back(r.back()[z[i]]);
        }
        r.pop_back();
    }
    int n = 0;
    for(int i = 0; i <= 10; i++){
        n += (m1[i] << i);
    }
    vector<bool> m;
    for(int i = 11; i < 11 + n; i++){
        m.push_back(m1[i]);
    }
    return m;
}

详细

Subtask #1:

score: 10
Accepted

Test #1:

score: 10
Accepted
time: 62ms
memory: 3764kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Test #2:

score: 10
Accepted
time: 102ms
memory: 4048kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Test #3:

score: 10
Accepted
time: 102ms
memory: 3816kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Test #4:

score: 10
Accepted
time: 115ms
memory: 3824kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Test #5:

score: 10
Accepted
time: 57ms
memory: 4120kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Test #6:

score: 10
Accepted
time: 39ms
memory: 3764kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Test #7:

score: 10
Accepted
time: 67ms
memory: 3760kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Subtask #2:

score: 19.314
Acceptable Answer

Test #8:

score: 19.314
Acceptable Answer
time: 268ms
memory: 3812kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.2146

result:

points 0.2146

Test #9:

score: 20.331
Acceptable Answer
time: 212ms
memory: 3832kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.2259

result:

points 0.2259

Test #10:

score: 19.314
Acceptable Answer
time: 204ms
memory: 4120kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.2146

result:

points 0.2146

Test #11:

score: 19.314
Acceptable Answer
time: 276ms
memory: 3816kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.2146

result:

points 0.2146

Test #12:

score: 20.331
Acceptable Answer
time: 282ms
memory: 3852kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.2259

result:

points 0.2259

Test #13:

score: 19.314
Acceptable Answer
time: 197ms
memory: 4056kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.2146

result:

points 0.2146

Test #14:

score: 19.314
Acceptable Answer
time: 145ms
memory: 3832kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.2146

result:

points 0.2146

Test #15:

score: 19.314
Acceptable Answer
time: 121ms
memory: 4052kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.2146

result:

points 0.2146

Test #16:

score: 20.331
Acceptable Answer
time: 138ms
memory: 3812kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.2259

result:

points 0.2259

Test #17:

score: 90
Accepted
time: 126ms
memory: 3848kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Test #18:

score: 90
Accepted
time: 123ms
memory: 4128kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Test #19:

score: 90
Accepted
time: 115ms
memory: 3788kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Test #20:

score: 90
Accepted
time: 150ms
memory: 4132kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Test #21:

score: 90
Accepted
time: 197ms
memory: 4116kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Test #22:

score: 73.305
Acceptable Answer
time: 188ms
memory: 4052kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.8145

result:

points 0.8145

Test #23:

score: 53.883
Acceptable Answer
time: 188ms
memory: 3868kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.5987

result:

points 0.5987

Test #24:

score: 39.609
Acceptable Answer
time: 189ms
memory: 3792kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.4401

result:

points 0.4401

Test #25:

score: 29.115
Acceptable Answer
time: 207ms
memory: 3812kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.3235

result:

points 0.3235

Test #26:

score: 20.331
Acceptable Answer
time: 236ms
memory: 3976kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.2259

result:

points 0.2259

Test #27:

score: 19.314
Acceptable Answer
time: 231ms
memory: 4044kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.2146

result:

points 0.2146