QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#696605 | #9237. Message | ivan_alexeev# | 29.314 | 282ms | 4132kb | C++23 | 3.3kb | 2024-10-31 23:45:58 | 2024-10-31 23:45:59 |
Judging History
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;
}
Details
Tip: Click on the bar to expand more detailed information
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