Submission #546343

# Submission time Handle Problem Language Result Execution time Memory
546343 2022-04-07T10:35:13 Z flappybird Ancient Machine (JOI21_ancient_machine) C++17
5 / 100
56 ms 8832 KB
#include "Anna.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define MAX 101010
#define B1 50
#define B2 45

namespace {
	vector<int> arr;
	vector<ll> fibo = { 2, 3 };
	vector<vector<int>> bukkit;
}

void Anna(int N, std::vector<char> S) {
	arr.resize(N);
	int i, c;
	c = 0;
	fibo.resize(B1);
	S.push_back(' ');
	for (i = 2; i < B1; i++) fibo[i] = fibo[i - 1] + fibo[i - 2];
	for (i = 0; i < N; i++) {
		if (!c && S[i] == 'X') c = 1, arr[i] = 1;
		if (c && S[i] == 'Z' && S[i + 1] != 'Z') arr[i] = 1;
	}
	bukkit.push_back(vector<int>());
	for (i = 0; i < N; i++) {
		if (bukkit.back().size() == B1) bukkit.push_back(vector<int>());
		bukkit.back().push_back(arr[i]);
	}
	bukkit.back().resize(B1);
	int bs = bukkit.size();
	ll res = 0;
	for (i = 0; i < bs; i++) {
		int j;
		res = 0;
		for (j = 0; j < B1; j++) if (bukkit[i][j]) res += fibo[j];
		for (j = 0; j < B2; j++) {
			if (res & (1ll << (ll)j)) Send(1);
			else Send(0);
		}
	}
}
#include "Bruno.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

namespace {
	const int B2 = 45;
	const int B1 = 50;
	vector<ll> fibo = { 2, 3 };
}  // namespace

void Bruno(int N, int L, std::vector<int> A) {
	int K = L / B2;
	int i;
	fibo.resize(B1);
	for (i = 2; i < B1; i++) fibo[i] = fibo[i - 1] + fibo[i - 2];
	vector<int> arr;
	for (i = 0; i < K; i++) {
		ll res = 0;
		ll j;
		for (j = 0; j < B2; j++) res += (ll)A[(ll)i * (ll)B2 + j] << (ll)j;
		vector<int> v;
		for (j = B1 - 1; j >= 0; j--) {
			if (res - fibo[j] >= 0) res -= fibo[j], v.push_back(1);
			else v.push_back(0);
		}
		reverse(v.begin(), v.end());
		for (auto x : v) arr.push_back(x);
	}
	arr.resize(N);
	vector<int> ones;
	int start = -1;
	for (i = 0; i < N; i++) {
		if (arr[i]) {
			start = i;
			break;
		}
	}
	if (start == -1) {
		for (i = 0; i < N; i++) Remove(i);
		return;
	}
	for (i = 0; i < N; i++) if (i != start && arr[i]) ones.push_back(i);
	if (ones.empty()) {
		for (i = 0; i < N; i++) Remove(i);
		return;
	}
	for (i = 0; i < start; i++) Remove(i);
	int pv = start;
	for (auto v : ones) {
		for (i = v - 1; i > pv; i--) Remove(i);
		Remove(v);
		pv = v;
	}
	Remove(start);
	for (i = pv + 1; i < N; i++) Remove(i);
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 508 KB Output is correct
2 Correct 1 ms 520 KB Output is correct
3 Correct 0 ms 512 KB Output is correct
4 Correct 0 ms 512 KB Output is correct
5 Correct 0 ms 512 KB Output is correct
6 Correct 1 ms 560 KB Output is correct
7 Correct 1 ms 516 KB Output is correct
8 Correct 1 ms 508 KB Output is correct
9 Correct 0 ms 508 KB Output is correct
10 Correct 0 ms 508 KB Output is correct
11 Correct 0 ms 516 KB Output is correct
# Verdict Execution time Memory Grader output
1 Partially correct 53 ms 8780 KB Partially correct
2 Partially correct 52 ms 8788 KB Partially correct
3 Incorrect 56 ms 8832 KB Wrong Answer [6]
4 Halted 0 ms 0 KB -