답안 #396052

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
396052 2021-04-29T12:02:52 Z Mlxa Ancient Machine (JOI21_ancient_machine) C++17
0 / 100
94 ms 7764 KB
#include "Anna.h"
#include <bits/stdc++.h>
using namespace std;

namespace anna {
static const int B = 20;
static const int BAD = (1 << B) - 1;
}

void Anna(int n, vector<char> s) {
	using namespace anna;
	for (int i = 0; i < n; ++i) {
		Send(s[i] == 'Y');
	}
	int x = BAD, z = BAD;
	for (int i = n; i--; ) {
		if (s[i] == 'X') {
			x = i;
		}
	}
	for (int i = 0; i < n; ++i) {
		if (s[i] == 'Z') {
			z = i;
		}
	}
	if (x > z || x == BAD || z == BAD) {
		x = BAD, z = BAD;
	}
	for (int i = 0; i < B; ++i) {
		Send((x >> i) & 1);
	}
	for (int i = 0; i < B; ++i) {
		Send((z >> i) & 1);
	}
}
#include "Bruno.h"
#include <bits/stdc++.h>
using namespace std;

namespace bruno {
static const int B = 20;
static const int BAD = (1 << B) - 1;
}

void Bruno(int n, int l, vector<int> a) {
	using namespace bruno;
	int x = 0, z = 0;
	for (int i = 0; i < B; ++i) {
		x |= a[n + i] << i;
		z |= a[n + B + i] << i;
	}
#ifdef LC
	cout << "receive " << l << ": " << x << " " << z << endl;
	for (int i = 0; i < n; ++i) {
		cout << a[i];
	}
	cout << endl;
#endif
	if (x == BAD || z == BAD) {
		for (int i = 0; i < n; ++i) {
			Remove(i);
		}
		return;
	}
	for (int i = 0; i < n; ++i) {
		if (a[i] || i == x || i == z) {
			continue;
		}
		Remove(i);
	}
	for (int i = 0; i < n; ++i) {
		if (a[i]) {
			Remove(i);
		}
	}
	Remove(x);
	Remove(z);
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 484 KB Wrong Answer [6]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 94 ms 7764 KB Wrong Answer [6]
2 Halted 0 ms 0 KB -