제출 #666493

#제출 시각아이디문제언어결과실행 시간메모리
666493rainboyAncient Machine (JOI21_ancient_machine)C++17
70 / 100
66 ms8280 KiB
#include "Anna.h"
#include <vector>

using namespace std;

typedef vector<char> str;

namespace {}

void Anna(int n, str cc) {
	str aa(n, 0);
	int ix = 0;
	while (ix < n && cc[ix] != 'X')
		ix++;
	int iz = n - 1;
	while (iz >= 0 && cc[iz] != 'Z')
		iz--;
	if (ix < iz) {
		aa[ix] = 1;
		for (int i = ix + 1; i < iz; i++)
			if (cc[i] == 'Z' && cc[i + 1] == 'Y')
				aa[i] = 1;
		aa[iz] = 1;
	}
	for (int i = 0; i < n; i++)
		Send(aa[i]);
}
#include "Bruno.h"
#include <vector>

using namespace std;

typedef vector<int> vi;

namespace {}

void Bruno(int n, int l, vi aa) {
	int ix = 0;
	while (ix < n && aa[ix] == 0)
		ix++;
	if (ix == n) {
		for (int i = 0; i < n; i++)
			Remove(i);
		return;
	}
	int iz = n - 1;
	while (iz >= 0 && aa[iz] == 0)
		iz--;
	for (int h = ix, i = ix + 1; i <= iz; i++)
		if (aa[i] == 1) {
			for (int j = i - 1; j > h; j--)
				Remove(j);
			h = i + 1;
		}
	for (int i = ix + 1; i <= iz; i++)
		if (aa[i] == 1) {
			Remove(i);
			if (i < iz)
				Remove(i + 1);
		}
	for (int i = ix; i >= 0; i--)
		Remove(i);
	for (int i = iz + 1; i < n; i++)
		Remove(i);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...