QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#601863 | #9237. Message | Pittow | 0 | 168ms | 3804kb | C++17 | 1.4kb | 2024-09-30 14:53:23 | 2024-09-30 14:53:23 |
Judging History
answer
#include "message.h"
typedef std::vector<bool> arr;
typedef std::vector<arr> arr2;
bool d[31],e[31],f[31];//d:decode e,f:encode
int r[31];//point
int encode(int p){
if(r[p]!=-1)return r[p];
int l=(p+1)%31;
while(l!=p&&!d[l])l=encode(l);
if(l==p)return -1;
(++l)%=31;
return r[p]=l;
}
int rt,flag;
int decode(int p){//return end
if(!d[p]){
if(p!=rt)++flag;
return p;
}
d[p]=0;
int l=(p+1)%31;
if(!f[p])l=decode(l);
if(l==p){
if(l==rt)--flag;
else ++flag;
return p;
}
(++l)%=31;
if(!e[p])return decode(l);
return l;
}
bool check(int p){
int i,j;
for(i=0;i<31;++i)d[i]=1;
flag=1;
rt=p;
decode(p);
for(i=j=0;i<31;++i)if(!d[i])++j;
if(j!=16)return 1;
return flag;
}
void send_message(arr M,arr C){
int i,j;
arr A(31);
for(i=0;i<31;++i)A[i]=C[(i+1)%31];
send_packet(A);
for(i=0;i<31;++i)r[i]=-1,d[i]=C[i];
for(i=0;i<31;++i)if(!d[i]&&r[i]==-1)encode(i);
for(i=0;i<31;++i)if(r[i]!=-1)A[i]=C[r[i]];
send_packet(A);
if(M.size()%16)while(1);
for(i=0;i<M.size();){
for(j=0;j<31;++j)if(!C[j])A[j]=M[i++];
send_packet(A);
}
}
arr receive_message(arr2 R){
int s=R.size(),i,j,k;
arr A((s-2)*16);
for(i=0;i<31;++i)e[i]=R[1][i],f[i]=R[0][i];
for(i=j=0;i<31;++i)if(!check(i))++j;
if(j!=1)while(1);
for(i=0;check(i);++i);
for(i=2,k=0;i<s;++i)
for(j=0;j<31;++j)if(!d[j])A[k++]=R[i][j];
return A;
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 0
Instance #0 Time Limit Exceeded
Test #1:
score: 10
Accepted
time: 14ms
memory: 3804kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #2:
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' Sending secret with code DIE to mgr2sol[1] Quitting with result code 1
result:
Subtask #2:
score: 0
Instance #0 Time Limit Exceeded
Test #8:
score: 90
Accepted
time: 168ms
memory: 3752kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #9:
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' Sending secret with code DIE to mgr2sol[1] Quitting with result code 1