QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#885303#9237. MessageASnown10 122ms3840kbC++201.8kb2025-02-06 15:10:042025-02-06 15:10:06

Judging History

This is the latest submission verdict.

  • [2025-02-06 15:10:06]
  • Judged
  • Verdict: 10
  • Time: 122ms
  • Memory: 3840kb
  • [2025-02-06 15:10:04]
  • Submitted

answer

#include<bits/stdc++.h>
#include "message.h"
using namespace std;
const int pL=16;
void send_message(vector<bool> M, vector<bool> C) {
   mt19937 rnd(892348892);
   vector<bitset<pL>> pri(31);
   for(int i=0;i<=30;i++) pri[i]=rnd();
   vector<int> pos;
   for(int i=0;i<=30;i++) if(!C[i]) pos.emplace_back(i);
   assert(pos.size()==16);
   for(int i=0;i<=30;i++) {
      vector<bool> A(31,C[i]);
      send_packet(A);
   }
   // for(int l=0;l<pL;l++) {
   //    vector<bool> A(31);
   //    for(int i=0;i<=30;i++) A[i]=pri[i][l];
   //    send_packet(A);
   // }
   int S=M.size();
   bitset<16> bS=S;
   vector<bool> A(31);
   for(int i=0;i<16;i++) A[pos[i]]=bS[i];
   send_packet(A);
   M.resize(S+16);
   for(int i=0;i<S;i+=16) {
      for(int j=0;j<16;j++) A[pos[j]]=M[i+j];
      send_packet(A);
   }
}

vector<bool> receive_message(vector<vector<bool>> R) {
   auto get_packet_it=R.begin();
   auto get_packet = [&]() {
      assert(get_packet_it!=R.end());
      return *(get_packet_it++);
   };
   mt19937 rnd(892348892);
   vector<bitset<pL>> pri(31);
   for(int i=0;i<=30;i++) pri[i]=rnd();
   vector<bool> C(31);
   // vector<bitset<pL>> get(31);
   // for(int l=0;l<pL;l++) {
   //    vector<bool> A=get_packet();
   //    for(int i=0;i<=30;i++) get[i][l]=A[i];
   // }
   // for(int i=0;i<=30;i++) C[i]=!(get[i]==pri[i]);
   for(int i=0;i<=30;i++) {
      int cnt[2]{};
      auto A=get_packet();
      for(int j=0;j<=30;j++) ++cnt[A[j]];
      C[i]=(cnt[0]<cnt[1]);
   }
   vector<int> pos;
   for(int i=0;i<=30;i++) if(!C[i]) pos.emplace_back(i);
   assert(pos.size()==16);
   int S=0;
   auto A=get_packet();
   for(int i=0;i<16;i++) S|=A[pos[i]]<<i;
   vector<bool> M;
   while(M.size()<S) {
      auto A=get_packet();
      for(int i=0;i<16;i++) M.emplace_back(A[pos[i]]);
   } M.resize(S);
   return M;
}

详细

Subtask #1:

score: 10
Accepted

Test #1:

score: 10
Accepted
time: 85ms
memory: 3840kb

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: 96ms
memory: 3712kb

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: 87ms
memory: 3840kb

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: 122ms
memory: 3840kb

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: 75ms
memory: 3840kb

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: 55ms
memory: 3712kb

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: 70ms
memory: 3840kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Subtask #2:

score: 0
Instance #0 Time Limit Exceeded

Test #8:

score: 0
Instance #0 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: