제출 #1328107

#제출 시각아이디문제언어결과실행 시간메모리
1328107PlayVoltzAncient Machine (JOI21_ancient_machine)C++20
69 / 100
46 ms6476 KiB
#include "Anna.h"
#include <bits/stdc++.h>
using namespace std;

#define pb push_back
#define mp make_pair
#define pii pair<int, int>
#define fi first
#define se second

void Anna(int n, vector<char> s){
	vector<int> res;
	int id=0;
	while (id<n&&s[id]!='X')++id;
	if (id==n){
		Send(0);
		return;
	}
	for (int i=0; i<17; ++i)Send(!!((1<<i)&id));
	for (int i=id+1; i<n; ++i){
		if (s[i]=='Z'&&(i==n-1||s[i+1]!='Z'))res.pb(1);
		else res.pb(0);
	}
	for (auto a:res)Send(a);
}
#include "Bruno.h"
#include <bits/stdc++.h>
using namespace std;

#define pb push_back
#define mp make_pair
#define pii pair<int, int>
#define fi first
#define se second

void Bruno(int n, int l, vector<int> a){
	if (l==1){
		for (int i=0; i<n; ++i)Remove(i);
		return;
	}
	int id=0;
	for (int i=0; i<17; ++i)if (a[i])id+=(1<<i);
	vector<int> vect(1, id);
	for (int i=17; i<a.size(); ++i)if (a[i])vect.pb(id+i-16);
	for (int i=0; i<vect[0]; ++i)Remove(i);
	for (int i=vect.back()+1; i<n; ++i)Remove(i);
	for (int i=1; i<vect.size(); ++i){
		for (int j=vect[i]-1; j>vect[i-1]; --j)Remove(j);
		Remove(vect[i]);
	}
	Remove(vect[0]);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...