QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#885388#9237. MessageGeekmen49.609 209ms3840kbC++171.9kb2025-02-06 15:30:012025-02-06 15:30:04

Judging History

This is the latest submission verdict.

  • [2025-02-06 15:30:04]
  • Judged
  • Verdict: 49.609
  • Time: 209ms
  • Memory: 3840kb
  • [2025-02-06 15:30:01]
  • Submitted

answer

#include <iostream>
#include <vector>
#include "message.h"
using namespace std;

void send_message(std::vector<bool> M, std::vector<bool> C) {
	int S = M.size();
	std::vector<int> pos;
	int sum = 0;
	for (int i = 0; i < 30; i ++) {
		// cout << "ok" << endl;
		if (sum == 15) {
			for (int j = i; j < 30; j ++)
				if (!C[j]) pos.push_back(j);
			break;
		}
		if (!pos.size()) {
			send_packet(vector<bool>(31, C[i]));
			if (!C[i]) pos.push_back(i);
			else sum ++;
		}
		else {
			std::vector<bool> tmp(31);
			int L = pos.size(), j;
			for (j = 0; j < L && i + j < 30; j ++) {
				tmp[pos[j]] = C[i + j];
				if (!C[i + j]) pos.push_back(i + j);
				else sum ++;
			}
			send_packet(tmp), i = i + j - 1;
		}
	}
	if (!C[30]) pos.push_back(30);

	std::vector<bool> len(31);
	for (int i = 0; i < 16; i ++)
		len[pos[i]] = S >> i & 1;

	send_packet(len);
	for (int i = 0; i < S; i += 16) {
		std::vector<bool> tmp(31);
		for (int j = i; j < min(i + 16, S); j ++)
			tmp[pos[j - i]] = M[j];
		send_packet(tmp);
	}
}
std::vector<bool> receive_message(std::vector<vector<bool>> R) {
	// cout << "OK" << endl;
	std::vector<int> pos;
	int sum = 0, pt = 0, i;
	for (i = 0; i < R.size(); i ++) {
		if (pt == 30) break;
		if (sum == 15) {
			for (int j = pt; j < 30; j ++)
				pos.push_back(j);
			break;
		}
		if (!pos.size()) {
			int C[2] = {0};
			for (int j = 0; j < 31; j ++)
				C[R[i][j]] ++;
			if (C[0] > C[1]) pos.push_back(i);
			sum += C[1] > C[0], pt ++;
		} else {
			int L = pos.size(), j;
			for (j = 0; j < L && pt + j < 30; j ++)
				if (!R[i][pos[j]])
					pos.push_back(pt + j);
				else sum ++;
			pt += j;
		}
	}
	if (sum == 15) pos.push_back(30);

	int S = 0;
	for (int j = 0; j < 16; j ++)
		S |= (R[i][pos[j]] << j);
	i ++;

	std::vector<bool> res;
	for (; i < R.size(); i ++)
		for (auto j : pos)
			res.push_back(R[i][j]);
	while (res.size() > S) res.pop_back();

	return res;
}

詳細信息

Subtask #1:

score: 10
Accepted

Test #1:

score: 10
Accepted
time: 76ms
memory: 3840kb

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: 36ms
memory: 3840kb

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: 48ms
memory: 3712kb

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: 48ms
memory: 3840kb

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: 27ms
memory: 3840kb

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: 23ms
memory: 3840kb

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: 15ms
memory: 3840kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Subtask #2:

score: 39.609
Acceptable Answer

Test #8:

score: 43.893
Acceptable Answer
time: 207ms
memory: 3712kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.4877

result:

points 0.4877

Test #9:

score: 59.706
Acceptable Answer
time: 117ms
memory: 3840kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.6634

result:

points 0.6634

Test #10:

score: 39.609
Acceptable Answer
time: 209ms
memory: 3840kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.4401

result:

points 0.4401

Test #11:

score: 46.197
Acceptable Answer
time: 205ms
memory: 3840kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.5133

result:

points 0.5133

Test #12:

score: 48.636
Acceptable Answer
time: 191ms
memory: 3840kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.5404

result:

points 0.5404

Test #13:

score: 41.697
Acceptable Answer
time: 144ms
memory: 3840kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.4633

result:

points 0.4633

Test #14:

score: 43.893
Acceptable Answer
time: 98ms
memory: 3840kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.4877

result:

points 0.4877

Test #15:

score: 41.697
Acceptable Answer
time: 126ms
memory: 3840kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.4633

result:

points 0.4633

Test #16:

score: 41.697
Acceptable Answer
time: 136ms
memory: 3840kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.4633

result:

points 0.4633

Test #17:

score: 90
Accepted
time: 38ms
memory: 3840kb

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

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: 81ms
memory: 3840kb

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: 75ms
memory: 3840kb

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: 105ms
memory: 3840kb

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: 132ms
memory: 3840kb

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: 146ms
memory: 3840kb

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: 156ms
memory: 3840kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Test #25:

score: 77.166
Acceptable Answer
time: 185ms
memory: 3840kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.8574

result:

points 0.8574

Test #26:

score: 48.636
Acceptable Answer
time: 196ms
memory: 3840kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.5404

result:

points 0.5404

Test #27:

score: 51.192
Acceptable Answer
time: 186ms
memory: 3840kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

0.5688

result:

points 0.5688