Submission #1325798

#TimeUsernameProblemLanguageResultExecution timeMemory
1325798StefanSebez기억 압축 (JOI15_memory)C++20
100 / 100
1393 ms284136 KiB
#include "Memory_lib.h"
#include<bits/stdc++.h>
using namespace std;
int Encode(int phase,int sz,int ind,int last){return (phase-1)+(sz<<7)+(ind<<14)+(last<<21);}
int Memory(int n, int M) {
	int phase=M%(1<<7)+1;
	int sz=(M>>7)%(1<<7);
	int ind=(M>>14)%(1<<7);
	int last=(M>>21)%2;
	if(phase>n)return -1;
	if(ind>=n){
		if(sz!=0)return -2;
		return Encode(phase+1,0,0,0);
	}
	else{
		char c=Get(ind+1);
		if(c=='['||c=='<'){
			int last1=last;
			if(sz+1==phase)last1=(c=='<');
			return Encode(phase,sz+1,ind+1,last1);
		}
		else{
			if(sz==0)return -2;
			if(sz==phase&&((c==']')!=(last==0)))return -2;
			return Encode(phase,sz-1,ind+1,last);
		}
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...