QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#601863#9237. MessagePittow0 168ms3804kbC++171.4kb2024-09-30 14:53:232024-09-30 14:53:23

Judging History

你现在查看的是最新测评结果

  • [2024-09-30 14:53:23]
  • 评测
  • 测评结果:0
  • 用时:168ms
  • 内存:3804kb
  • [2024-09-30 14:53:23]
  • 提交

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

result: