제출 #1183861

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


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

bool out[100005];
void rem(int x){
	if(!out[x]){
		out[x]=true;
		Remove(x);
	}
}

void Bruno(int n, int l, vector<int> a) {
	vector<int> s;
	assert(n*2==l);
	for(int i=0;i<l/2;i++){
	  int t=a[i*2]*2+a[i*2+1];
	  s.push_back(t);
	  //~ cout<<t;
	}
	int fx=n, lz=-1;
	vector<int> px(n,-1), pz(n,-1), nz(n,n);
	for(int i=0;i<n;i++){
		if(i!=0)px[i]=px[i-1];
		if(s[i]==0){fx=min(fx,i);px[i]=i;}
		if(i!=0)pz[i]=pz[i-1];
		if(s[i]==2){pz[i]=i;}
	}
	for(int i=n-1;i>=0;i--){
		if(i!=n-1)nz[i]=nz[i+1];
		if(s[i]==2){nz[i]=i;lz=max(lz,i);}
	}
	for(int i=0;i<fx;i++){
		rem(i);
	}
	for(int i=lz+1;i<n;i++){
		rem(i);
	}
	for(int i=fx+1;i<=lz;){
		for(int j=nz[i]-1;j>max(fx,pz[i]);j--){
			rem(j);
		}
		rem(nz[i]);
		i=nz[i]+1;
	}
	rem(fx);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...