QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#560124#9237. Messagesynonym95.5 321ms4112kbC++172.5kb2024-09-12 13:00:432024-09-12 13:00:44

Judging History

This is the latest submission verdict.

  • [2024-09-12 13:00:44]
  • Judged
  • Verdict: 95.5
  • Time: 321ms
  • Memory: 4112kb
  • [2024-09-12 13:00:43]
  • Submitted

answer

#include "bits/stdc++.h"
#include "message.h"

using namespace std;
#define int long long
#define all(x) begin(x), end(x)
#define sz(x) (int) (x).size()

const int L = 31;

vector<vector<bool>> kk;
/*
void send_packet(vector<bool> s) {
	kk.push_back(s);
}
*/
void send_message(vector<bool> M, vector<bool> C) {
	vector<int> pos;
	for (int i=0; i<L; i++) {if (!C[i]) pos.push_back(i);}
	vector<int> dist;
	for (int i=0; i<sz(pos); i++) {
		dist.push_back((L+pos[(i+1)%sz(pos)]-pos[i]-1)%L);
	}
	vector<vector<int>> mess(100,vector<int>(L,-1));
	for (int i=0; i<sz(pos); i++) {
		for (int j=0; j<dist[i]; j++) {
			mess[j][pos[i]]=1;
		}
		mess[dist[i]][pos[i]]=0;
	}
	vector<array<int,2>> ava;
	for (int i=0; i<100; i++) {
		for (int j=0; j<sz(pos); j++) {
			if (mess[i][pos[j]]==-1) {
				ava.push_back({i,pos[j]});
			}
		}
	}
	sort(all(ava)); int cp = 0;
	int len = sz(M)-1;
	for (int i=0; i<10; i++) {
		auto [a,b] = ava[cp++];
//		cout<<a<<" "<<b<<" "<<(1<<i)<<" "<<((1<<i)&len)<<endl;
		mess[a][b] = ((1<<i)&len)?1:0;
	}
	for (auto i : M) {
		auto [a,b] = ava[cp++];
		mess[a][b] = i?1:0;
	}
	for (auto i : mess) {
		int bad=1;
		for (int j:i) {
			if (j!=-1) bad=0;
		}
		if (bad) break;
		vector<bool> packet;
		for (int j:i) {
			packet.push_back(j==1);
		}
		send_packet(packet);
	}
}

vector<bool> receive_message(vector<vector<bool>> R) {
	vector<int> nx(L,1);
	for (int i=0; i<L; i++) {
		for (auto m : R) {
			if (!m[i]) break;
			nx[i]++;
		}
	}
	vector<int> pos;
	for (int i=0; i<L; i++) {
		int cyc = 1;
		int cp = (i+nx[i])%L;
		while (cp != i) {
			cp = (cp+nx[cp])%L;
			cyc++;
			if (cyc==100) break;
		}
		if (cyc==16) pos.push_back(i);
	}
	vector<array<int,2>> ava;
	for (int i : pos) {
		for (int j=nx[i]; j<sz(R); j++) {
			ava.push_back({j,i});
		}
	}
	sort(all(ava));
	int len=1;
	int cp = 0;
	for (int i=0; i<10; i++) {
		auto [a,b] = ava[cp++];
		bool x = R[a][b];
		if (x) len += (1<<i);
	}
	vector<bool> ans;
	for (int i=0; i<len; i++) {
		auto [a,b] = ava[cp++];
		bool x = R[a][b];
		ans.push_back(x);
	}
//	cout<<len<<endl;
	return ans;
}
/*
signed main() {
	ios::sync_with_stdio(false); cin.tie(nullptr);
	vector<bool> msg(1024,0);
	vector<bool> ctrl;
	for (int i=0; i<15; i++) {
		ctrl.push_back(1);
	}
	ctrl.resize(31);
	send_message(msg,ctrl);
/*	for (auto i : kk) {
		for (auto j:i) cout<<j;
		cout<<endl;
	}
	auto x = receive_message(kk);
//	cout<<sz(x)<<endl;
	for (auto i : x) cout<<i;
	return 0;
}
*/

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 10
Accepted

Test #1:

score: 10
Accepted
time: 108ms
memory: 3832kb

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: 120ms
memory: 4100kb

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: 113ms
memory: 3792kb

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: 92ms
memory: 3984kb

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: 3808kb

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: 78ms
memory: 4064kb

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: 66ms
memory: 3916kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Subtask #2:

score: 85.5
Acceptable Answer

Test #8:

score: 85.5
Acceptable Answer
time: 321ms
memory: 3796kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.9500

result:

points 0.95

Test #9:

score: 90
Accepted
time: 175ms
memory: 4108kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Test #10:

score: 85.5
Acceptable Answer
time: 282ms
memory: 3876kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.9500

result:

points 0.95

Test #11:

score: 85.5
Acceptable Answer
time: 291ms
memory: 3776kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.9500

result:

points 0.95

Test #12:

score: 90
Accepted
time: 277ms
memory: 3796kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Test #13:

score: 85.5
Acceptable Answer
time: 247ms
memory: 3856kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.9500

result:

points 0.95

Test #14:

score: 85.5
Acceptable Answer
time: 149ms
memory: 4036kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.9500

result:

points 0.95

Test #15:

score: 85.5
Acceptable Answer
time: 215ms
memory: 3924kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.9500

result:

points 0.95

Test #16:

score: 90
Accepted
time: 237ms
memory: 4112kb

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: 129ms
memory: 3796kb

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: 4020kb

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: 158ms
memory: 4064kb

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: 151ms
memory: 3872kb

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: 186ms
memory: 4048kb

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: 198ms
memory: 4112kb

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: 209ms
memory: 3796kb

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: 263ms
memory: 3796kb

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: 245ms
memory: 3940kb

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: 273ms
memory: 4064kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Test #27:

score: 85.5
Acceptable Answer
time: 281ms
memory: 3876kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.9500

result:

points 0.95