QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#560011 | #9237. Message | yhddd | 100 ✓ | 217ms | 4096kb | C++20 | 3.0kb | 2024-09-12 11:24:13 | 2024-09-12 11:24:14 |
Judging History
answer
#include "message.h"
#include<bits/stdc++.h>
#define pb push_back
using namespace std;
// const int PACKET_SIZE = 31;
// const int CALLS_CNT_LIMIT = 100;
//
// int calls_cnt;
// std::vector<std::vector<bool>> R;
// std::vector<bool> C(PACKET_SIZE);
// 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)
// printf("Too many calls"),exit(0);
// if ((int)A.size() != PACKET_SIZE)
// printf("Invalid argument"),exit(0);
//
// std::vector<bool> B = taint(A);
// R.push_back(B);
// return B;
// }
void send_message(std::vector<bool> M, std::vector<bool> C) {
M.pb(0);while(M.size()<16*66)M.pb(1);
reverse(M.begin(),M.end());
vector<vector<bool>> a;a.resize(66);
for(int i=0;i<66;i++)a[i].resize(31);
for(int i=0;i<31;i++)if(!C[i]){
int d=0;
for(int j=i+1;;j++)if(!C[j%31]){
d=j-i;
break;
}
a[d-1][i]=1;
for(int j=d;j<66;j++)a[j][i]=M.back(),M.pop_back();
}
for(int i=0;i<66;i++)send_packet(a[i]);
}
std::vector<bool> receive_message(std::vector<std::vector<bool>> R) {
// for(int i=0;i<66;i++){
// for(int j=0;j<31;j++)cout<<R[i][j]<<" ";cout<<"\n";
// }
vector<int> e(31);
for(int i=0;i<=30;i++){
int p=0;
for(int j=0;j<66;j++)if(R[j][i]){p=j+1;break;}
e[i]=(i+p)%31;
}
vector<int> st;
for(int i=0;i<=30;i++){
vector<int> vis(31,0);st.clear();
int u=i;
while(!vis[u]){
st.pb(u);vis[u]=1;
u=e[u];
}
if(u==i&&st.size()==16)break;
}
vector<bool> res;
sort(st.begin(),st.end());
for(int i:st){
int p=0;
for(int j=0;j<66;j++)if(R[j][i]){p=j+1;break;}
for(int j=p;j<66;j++)res.pb(R[j][i]);
}
for(int i=res.size()-1;~i;i--){
if(!res[i]){
while(res.size()>i)res.pop_back();
break;
}
}
return res;
}
// void quit(const char* message) {
// printf("%s\n", message);
// exit(0);
// }
//
// 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() {
// int T;
// assert(1 == scanf("%d", &T));
// for (int i = 1; i <= T; i++)
// run_scenario();
// }
//
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 10
Accepted
Test #1:
score: 10
Accepted
time: 134ms
memory: 3756kb
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: 157ms
memory: 3804kb
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: 167ms
memory: 3804kb
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: 159ms
memory: 3816kb
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: 107ms
memory: 3788kb
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: 63ms
memory: 3748kb
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: 84ms
memory: 3984kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Subtask #2:
score: 90
Accepted
Test #8:
score: 90
Accepted
time: 190ms
memory: 4032kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #9:
score: 90
Accepted
time: 150ms
memory: 3812kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #10:
score: 90
Accepted
time: 182ms
memory: 4088kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #11:
score: 90
Accepted
time: 196ms
memory: 3808kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #12:
score: 90
Accepted
time: 137ms
memory: 3980kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #13:
score: 90
Accepted
time: 98ms
memory: 3816kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #14:
score: 90
Accepted
time: 68ms
memory: 3748kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #15:
score: 90
Accepted
time: 151ms
memory: 3748kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #16:
score: 90
Accepted
time: 134ms
memory: 3816kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #17:
score: 90
Accepted
time: 142ms
memory: 3800kb
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: 157ms
memory: 4012kb
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: 169ms
memory: 4092kb
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: 171ms
memory: 4016kb
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: 217ms
memory: 3812kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #22:
score: 90
Accepted
time: 164ms
memory: 4020kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #23:
score: 90
Accepted
time: 151ms
memory: 3984kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #24:
score: 90
Accepted
time: 149ms
memory: 4096kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #25:
score: 90
Accepted
time: 182ms
memory: 3820kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #26:
score: 90
Accepted
time: 156ms
memory: 4020kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #27:
score: 90
Accepted
time: 135ms
memory: 3792kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Extra Test:
score: 0
Extra Test Passed