Submission #1609408


Source Code Expand

//このソースコードはpietで書かれたものをc++にコンパイルしたものです。決して闇の呪文ではありません。
#include <cstdio>
#include <vector>
#include <stack>
#include <iostream>
#include <string>
#include <tuple>
#include <random>

using namespace std;
typedef long long ll;
struct cal{
int process;
int next;
cal(int p,int n){
	process=p;next=n;
}
bool operator >(const cal &b) const{return process > b.process;}
};

const int PUSH=1,POP=2,ADD=10,SUB=11,MULTI=12,DIV=20,MOD=21,NOT=22,GREAT=30,POINT=31,SWITCH=32,DUP=40,ROLL=41,INN=42,INC=50,OUTN=51,OUTC=52;

struct node_t {
	ll val;
	node_t *lch;
	node_t *rch;
	ll cnt;
	node_t(ll v) : val(v), cnt(1), lch(nullptr), rch(nullptr) {}
};

ll count(node_t *t) { return t == nullptr ? 0 : t->cnt; }
node_t *update(node_t *t) {
	if(t==nullptr) return t;
	t->cnt = count(t->lch) + count(t->rch) + 1;
	return t;
}

node_t *merge(node_t *l, node_t *r) {
	static ll hoge = 333;
	hoge = (hoge * 7142416731) % 1000000007;
	if (l == nullptr)
		return r;
	if (r == nullptr)
		return l;
	random_device rnd;
	if (rand() % (count(l) + count(r)) < count(l) ) {
		l->rch = merge(l->rch, r);
		return update(l);
	}else {
		r->lch = merge(l, r->lch);
		return update(r);
	}
}

pair<node_t*, node_t*> split(node_t* t, ll k) {
	if (t == nullptr) return make_pair(nullptr, nullptr);
	if (k <= count(t->lch)) {
		pair<node_t*, node_t*> s = split(t->lch, k);
		t->lch = s.second;
		return make_pair(s.first, update(t));
	}else {
		pair<node_t*, node_t*> s = split(t->rch, k - count(t->lch) - 1);
		t->rch = s.first;
		return make_pair(update(t), s.second);
	}
}

node_t *insert(node_t *t, ll k, ll val) {
	node_t *l, *r;
	tie(l, r) = split(t, k);
	return update(merge(merge(l, new node_t(val)), r));
}

node_t *erase(node_t *t, ll k) {
	node_t *l1, *r1, *l2, *r2;
	tie(l1, r1) = split(t, k);
	tie(l2, r2) = split(r1, 1);
	return update(merge(l1, r2));
}

node_t *update(node_t *t, ll k, ll val) {
	t = erase(t, k);
	t = insert(t, k, val);
	return t;
}

node_t *push(node_t *t, ll val) {
	return insert(t, count(t), val);
}

ll top(node_t *t) {
	while(t->rch != nullptr)
		t=t->rch;
	return t->val;
}

node_t *pop(node_t *t) {
	return erase(t, count(t)-1);
}

node_t *shift(node_t *t, ll l, ll r, ll k) {
	node_t *l1, *rt, *r1, *mid, *midl, *midr;
	tie(l1, rt) = split(t, l);
	tie(mid, r1) = split(rt, r-l);

	k = (k + (abs(count(mid)/count(mid))+1) * count(mid)) % count(mid);
	tie(midl, midr) = split(mid, count(mid) - k);

	return update(merge(l1, merge(merge(midr, midl), r1)));
}

string string_tree(node_t *t) {
	if (t == nullptr)
		return "x";
	return "(" + string_tree(t->lch) + to_string(t->val) + string_tree(t->rch) + ")";
}


int main(){
	vector<vector<vector<cal>>> proceed(48,vector<vector<cal>>(4,vector<cal>(2,cal(0,0))));
	proceed[0][0][0]=cal(42,1);proceed[0][0][1]=cal(42,1);proceed[0][1][0]=cal(-2,-1);proceed[0][1][1]=cal(-2,-1);proceed[0][2][0]=cal(-1,-1);proceed[0][2][1]=cal(-1,-1);proceed[0][3][0]=cal(-1,-1);proceed[0][3][1]=cal(-1,-1);proceed[1][0][0]=cal(42,2);proceed[1][0][1]=cal(42,2);proceed[1][1][0]=cal(-2,-1);proceed[1][1][1]=cal(-2,-1);proceed[1][2][0]=cal(21,0);proceed[1][2][1]=cal(21,0);proceed[1][3][0]=cal(-1,-1);proceed[1][3][1]=cal(-1,-1);proceed[2][0][0]=cal(42,3);proceed[2][0][1]=cal(42,3);proceed[2][1][0]=cal(-2,-1);proceed[2][1][1]=cal(-2,-1);proceed[2][2][0]=cal(21,1);proceed[2][2][1]=cal(21,1);proceed[2][3][0]=cal(-1,-1);proceed[2][3][1]=cal(-1,-1);proceed[3][0][0]=cal(1,4);proceed[3][0][1]=cal(-2,8);proceed[3][1][0]=cal(-2,-1);proceed[3][1][1]=cal(-2,-1);proceed[3][2][0]=cal(-2,-1);proceed[3][2][1]=cal(21,2);proceed[3][3][0]=cal(-1,-1);proceed[3][3][1]=cal(-1,-1);proceed[4][0][0]=cal(1,5);proceed[4][0][1]=cal(1,5);proceed[4][1][0]=cal(-2,-1);proceed[4][1][1]=cal(-2,-1);proceed[4][2][0]=cal(2,3);proceed[4][2][1]=cal(2,3);proceed[4][3][0]=cal(-1,-1);proceed[4][3][1]=cal(-1,-1);proceed[5][0][0]=cal(41,6);proceed[5][0][1]=cal(41,6);proceed[5][1][0]=cal(-2,-1);proceed[5][1][1]=cal(-2,-1);proceed[5][2][0]=cal(2,4);proceed[5][2][1]=cal(2,4);proceed[5][3][0]=cal(-1,-1);proceed[5][3][1]=cal(-1,-1);proceed[6][0][0]=cal(-2,7);proceed[6][0][1]=cal(-2,7);proceed[6][1][0]=cal(-2,42);proceed[6][1][1]=cal(-2,42);proceed[6][2][0]=cal(22,5);proceed[6][2][1]=cal(22,5);proceed[6][3][0]=cal(-1,-1);proceed[6][3][1]=cal(-1,-1);proceed[7][0][0]=cal(40,8);proceed[7][0][1]=cal(40,8);proceed[7][1][0]=cal(-2,35);proceed[7][1][1]=cal(-2,35);proceed[7][2][0]=cal(-2,6);proceed[7][2][1]=cal(-2,6);proceed[7][3][0]=cal(-1,-1);proceed[7][3][1]=cal(-1,-1);proceed[8][0][0]=cal(1,9);proceed[8][0][1]=cal(-2,33);proceed[8][1][0]=cal(-2,35);proceed[8][1][1]=cal(-2,35);proceed[8][2][0]=cal(-2,-1);proceed[8][2][1]=cal(20,7);proceed[8][3][0]=cal(-1,-1);proceed[8][3][1]=cal(-1,-1);proceed[9][0][0]=cal(1,10);proceed[9][0][1]=cal(1,10);proceed[9][1][0]=cal(-2,35);proceed[9][1][1]=cal(-2,35);proceed[9][2][0]=cal(2,8);proceed[9][2][1]=cal(2,8);proceed[9][3][0]=cal(-1,-1);proceed[9][3][1]=cal(-1,-1);proceed[10][0][0]=cal(41,11);proceed[10][0][1]=cal(41,11);proceed[10][1][0]=cal(-2,35);proceed[10][1][1]=cal(-2,35);proceed[10][2][0]=cal(2,9);proceed[10][2][1]=cal(2,9);proceed[10][3][0]=cal(-1,-1);proceed[10][3][1]=cal(-1,-1);proceed[11][0][0]=cal(30,12);proceed[11][0][1]=cal(30,12);proceed[11][1][0]=cal(-2,35);proceed[11][1][1]=cal(-2,35);proceed[11][2][0]=cal(22,10);proceed[11][2][1]=cal(22,10);proceed[11][3][0]=cal(-1,-1);proceed[11][3][1]=cal(-1,-1);proceed[12][0][0]=cal(31,13);proceed[12][0][1]=cal(31,13);proceed[12][1][0]=cal(-2,35);proceed[12][1][1]=cal(-2,35);proceed[12][2][0]=cal(30,11);proceed[12][2][1]=cal(30,11);proceed[12][3][0]=cal(-1,-1);proceed[12][3][1]=cal(-1,-1);proceed[13][0][0]=cal(30,14);proceed[13][0][1]=cal(30,14);proceed[13][1][0]=cal(-2,33);proceed[13][1][1]=cal(-2,33);proceed[13][2][0]=cal(32,12);proceed[13][2][1]=cal(32,12);proceed[13][3][0]=cal(-1,-1);proceed[13][3][1]=cal(-1,-1);proceed[14][0][0]=cal(31,15);proceed[14][0][1]=cal(31,15);proceed[14][1][0]=cal(-2,35);proceed[14][1][1]=cal(-2,35);proceed[14][2][0]=cal(30,13);proceed[14][2][1]=cal(30,13);proceed[14][3][0]=cal(-1,-1);proceed[14][3][1]=cal(-1,-1);proceed[15][0][0]=cal(-2,16);proceed[15][0][1]=cal(-2,16);proceed[15][1][0]=cal(-2,34);proceed[15][1][1]=cal(-2,34);proceed[15][2][0]=cal(32,14);proceed[15][2][1]=cal(32,14);proceed[15][3][0]=cal(-1,-1);proceed[15][3][1]=cal(-1,-1);proceed[16][0][0]=cal(1,17);proceed[16][0][1]=cal(-2,23);proceed[16][1][0]=cal(-2,-1);proceed[16][1][1]=cal(-2,-1);proceed[16][2][0]=cal(-2,39);proceed[16][2][1]=cal(-2,15);proceed[16][3][0]=cal(-1,-1);proceed[16][3][1]=cal(-1,-1);proceed[17][0][0]=cal(40,18);proceed[17][0][1]=cal(40,18);proceed[17][1][0]=cal(-2,-1);proceed[17][1][1]=cal(-2,-1);proceed[17][2][0]=cal(2,16);proceed[17][2][1]=cal(2,16);proceed[17][3][0]=cal(-1,-1);proceed[17][3][1]=cal(-1,-1);proceed[18][0][0]=cal(12,19);proceed[18][0][1]=cal(12,19);proceed[18][1][0]=cal(-2,-1);proceed[18][1][1]=cal(-2,-1);proceed[18][2][0]=cal(20,17);proceed[18][2][1]=cal(20,17);proceed[18][3][0]=cal(-1,-1);proceed[18][3][1]=cal(-1,-1);proceed[19][0][0]=cal(1,20);proceed[19][0][1]=cal(-2,23);proceed[19][1][0]=cal(-2,-1);proceed[19][1][1]=cal(-2,-1);proceed[19][2][0]=cal(-2,16);proceed[19][2][1]=cal(51,18);proceed[19][3][0]=cal(-1,-1);proceed[19][3][1]=cal(-1,-1);proceed[20][0][0]=cal(10,21);proceed[20][0][1]=cal(10,21);proceed[20][1][0]=cal(-2,-1);proceed[20][1][1]=cal(-2,-1);proceed[20][2][0]=cal(2,19);proceed[20][2][1]=cal(2,19);proceed[20][3][0]=cal(-1,-1);proceed[20][3][1]=cal(-1,-1);proceed[21][0][0]=cal(40,22);proceed[21][0][1]=cal(40,22);proceed[21][1][0]=cal(-2,-1);proceed[21][1][1]=cal(-2,-1);proceed[21][2][0]=cal(50,20);proceed[21][2][1]=cal(50,20);proceed[21][3][0]=cal(-1,-1);proceed[21][3][1]=cal(-1,-1);proceed[22][0][0]=cal(52,23);proceed[22][0][1]=cal(52,23);proceed[22][1][0]=cal(-2,-1);proceed[22][1][1]=cal(-2,-1);proceed[22][2][0]=cal(20,21);proceed[22][2][1]=cal(20,21);proceed[22][3][0]=cal(-1,-1);proceed[22][3][1]=cal(-1,-1);proceed[23][0][0]=cal(1,24);proceed[23][0][1]=cal(-2,27);proceed[23][1][0]=cal(-2,-1);proceed[23][1][1]=cal(-2,-1);proceed[23][2][0]=cal(-2,42);proceed[23][2][1]=cal(11,22);proceed[23][3][0]=cal(-1,-1);proceed[23][3][1]=cal(-1,-1);proceed[24][0][0]=cal(10,25);proceed[24][0][1]=cal(10,25);proceed[24][1][0]=cal(-2,-1);proceed[24][1][1]=cal(-2,-1);proceed[24][2][0]=cal(2,23);proceed[24][2][1]=cal(2,23);proceed[24][3][0]=cal(-1,-1);proceed[24][3][1]=cal(-1,-1);proceed[25][0][0]=cal(40,26);proceed[25][0][1]=cal(40,26);proceed[25][1][0]=cal(-2,-1);proceed[25][1][1]=cal(-2,-1);proceed[25][2][0]=cal(50,24);proceed[25][2][1]=cal(50,24);proceed[25][3][0]=cal(-1,-1);proceed[25][3][1]=cal(-1,-1);proceed[26][0][0]=cal(52,27);proceed[26][0][1]=cal(52,27);proceed[26][1][0]=cal(-2,-1);proceed[26][1][1]=cal(-2,-1);proceed[26][2][0]=cal(20,25);proceed[26][2][1]=cal(20,25);proceed[26][3][0]=cal(-1,-1);proceed[26][3][1]=cal(-1,-1);proceed[27][0][0]=cal(1,28);proceed[27][0][1]=cal(-2,-1);proceed[27][1][0]=cal(-2,-1);proceed[27][1][1]=cal(-2,-1);proceed[27][2][0]=cal(-2,42);proceed[27][2][1]=cal(11,26);proceed[27][3][0]=cal(-1,-1);proceed[27][3][1]=cal(-1,-1);proceed[28][0][0]=cal(10,29);proceed[28][0][1]=cal(10,29);proceed[28][1][0]=cal(-2,-1);proceed[28][1][1]=cal(-2,-1);proceed[28][2][0]=cal(2,27);proceed[28][2][1]=cal(2,27);proceed[28][3][0]=cal(-1,-1);proceed[28][3][1]=cal(-1,-1);proceed[29][0][0]=cal(52,30);proceed[29][0][1]=cal(52,30);proceed[29][1][0]=cal(-2,-1);proceed[29][1][1]=cal(-2,-1);proceed[29][2][0]=cal(50,28);proceed[29][2][1]=cal(50,28);proceed[29][3][0]=cal(-1,-1);proceed[29][3][1]=cal(-1,-1);proceed[30][0][0]=cal(1,31);proceed[30][0][1]=cal(-2,-1);proceed[30][1][0]=cal(-2,-1);proceed[30][1][1]=cal(-2,-1);proceed[30][2][0]=cal(-2,27);proceed[30][2][1]=cal(11,29);proceed[30][3][0]=cal(-1,-1);proceed[30][3][1]=cal(-1,-1);proceed[31][0][0]=cal(52,32);proceed[31][0][1]=cal(52,32);proceed[31][1][0]=cal(52,32);proceed[31][1][1]=cal(-1,-1);proceed[31][2][0]=cal(2,30);proceed[31][2][1]=cal(2,30);proceed[31][3][0]=cal(-1,-1);proceed[31][3][1]=cal(-1,-1);proceed[32][0][0]=cal(-1,-1);proceed[32][0][1]=cal(-1,-1);proceed[32][1][0]=cal(-1,-1);proceed[32][1][1]=cal(-1,-1);proceed[32][2][0]=cal(-1,-1);proceed[32][2][1]=cal(-1,-1);proceed[32][3][0]=cal(-1,-1);proceed[32][3][1]=cal(-1,-1);proceed[33][0][0]=cal(-2,34);proceed[33][0][1]=cal(-2,34);proceed[33][1][0]=cal(-2,35);proceed[33][1][1]=cal(-2,35);proceed[33][2][0]=cal(-2,8);proceed[33][2][1]=cal(-2,8);proceed[33][3][0]=cal(-2,13);proceed[33][3][1]=cal(-2,13);proceed[34][0][0]=cal(-2,16);proceed[34][0][1]=cal(-2,16);proceed[34][1][0]=cal(-2,35);proceed[34][1][1]=cal(-2,35);proceed[34][2][0]=cal(-2,33);proceed[34][2][1]=cal(-2,33);proceed[34][3][0]=cal(-2,15);proceed[34][3][1]=cal(-2,15);proceed[35][0][0]=cal(-2,16);proceed[35][0][1]=cal(-2,16);proceed[35][1][0]=cal(1,36);proceed[35][1][1]=cal(-2,42);proceed[35][2][0]=cal(-2,-1);proceed[35][2][1]=cal(-2,-1);proceed[35][3][0]=cal(-2,7);proceed[35][3][1]=cal(-2,34);proceed[36][0][0]=cal(-2,16);proceed[36][0][1]=cal(-2,16);proceed[36][1][0]=cal(40,37);proceed[36][1][1]=cal(40,37);proceed[36][2][0]=cal(-2,-1);proceed[36][2][1]=cal(-2,-1);proceed[36][3][0]=cal(2,35);proceed[36][3][1]=cal(2,35);proceed[37][0][0]=cal(-2,16);proceed[37][0][1]=cal(-2,16);proceed[37][1][0]=cal(12,38);proceed[37][1][1]=cal(12,38);proceed[37][2][0]=cal(-2,-1);proceed[37][2][1]=cal(-2,-1);proceed[37][3][0]=cal(20,36);proceed[37][3][1]=cal(20,36);proceed[38][0][0]=cal(-2,16);proceed[38][0][1]=cal(-2,16);proceed[38][1][0]=cal(1,39);proceed[38][1][1]=cal(-2,40);proceed[38][2][0]=cal(-2,-1);proceed[38][2][1]=cal(-2,-1);proceed[38][3][0]=cal(-2,35);proceed[38][3][1]=cal(51,37);proceed[39][0][0]=cal(-2,16);proceed[39][0][1]=cal(-2,16);proceed[39][1][0]=cal(11,40);proceed[39][1][1]=cal(11,40);proceed[39][2][0]=cal(-2,-1);proceed[39][2][1]=cal(-2,-1);proceed[39][3][0]=cal(2,38);proceed[39][3][1]=cal(2,38);proceed[40][0][0]=cal(-2,23);proceed[40][0][1]=cal(-2,23);proceed[40][1][0]=cal(40,41);proceed[40][1][1]=cal(-2,42);proceed[40][2][0]=cal(-2,-1);proceed[40][2][1]=cal(-2,-1);proceed[40][3][0]=cal(-2,38);proceed[40][3][1]=cal(52,39);proceed[41][0][0]=cal(-2,23);proceed[41][0][1]=cal(-2,23);proceed[41][1][0]=cal(52,42);proceed[41][1][1]=cal(52,42);proceed[41][2][0]=cal(-2,-1);proceed[41][2][1]=cal(-2,-1);proceed[41][3][0]=cal(20,40);proceed[41][3][1]=cal(20,40);proceed[42][0][0]=cal(-2,23);proceed[42][0][1]=cal(-2,27);proceed[42][1][0]=cal(1,43);proceed[42][1][1]=cal(-2,-1);proceed[42][2][0]=cal(-2,-1);proceed[42][2][1]=cal(-2,-1);proceed[42][3][0]=cal(-2,6);proceed[42][3][1]=cal(11,41);proceed[43][0][0]=cal(-2,-1);proceed[43][0][1]=cal(-2,-1);proceed[43][1][0]=cal(10,44);proceed[43][1][1]=cal(10,44);proceed[43][2][0]=cal(-2,-1);proceed[43][2][1]=cal(-2,-1);proceed[43][3][0]=cal(2,42);proceed[43][3][1]=cal(2,42);proceed[44][0][0]=cal(-2,-1);proceed[44][0][1]=cal(-2,-1);proceed[44][1][0]=cal(52,45);proceed[44][1][1]=cal(52,45);proceed[44][2][0]=cal(-2,-1);proceed[44][2][1]=cal(-2,-1);proceed[44][3][0]=cal(50,43);proceed[44][3][1]=cal(50,43);proceed[45][0][0]=cal(-1,-1);proceed[45][0][1]=cal(-1,-1);proceed[45][1][0]=cal(1,46);proceed[45][1][1]=cal(-2,-1);proceed[45][2][0]=cal(-2,-1);proceed[45][2][1]=cal(-2,-1);proceed[45][3][0]=cal(-2,42);proceed[45][3][1]=cal(11,44);proceed[46][0][0]=cal(52,47);proceed[46][0][1]=cal(52,47);proceed[46][1][0]=cal(52,47);proceed[46][1][1]=cal(52,47);proceed[46][2][0]=cal(-2,-1);proceed[46][2][1]=cal(-2,-1);proceed[46][3][0]=cal(2,45);proceed[46][3][1]=cal(2,45);proceed[47][0][0]=cal(-1,-1);proceed[47][0][1]=cal(-1,-1);proceed[47][1][0]=cal(-1,-1);proceed[47][1][1]=cal(-1,-1);proceed[47][2][0]=cal(-1,-1);proceed[47][2][1]=cal(-1,-1);proceed[47][3][0]=cal(-1,-1);proceed[47][3][1]=cal(-1,-1);
	vector<int> codelblock;
	codelblock.push_back(1);codelblock.push_back(1);codelblock.push_back(1);codelblock.push_back(2);codelblock.push_back(1);codelblock.push_back(1);codelblock.push_back(1);codelblock.push_back(1);codelblock.push_back(3);codelblock.push_back(1);codelblock.push_back(1);codelblock.push_back(1);codelblock.push_back(1);codelblock.push_back(1);codelblock.push_back(1);codelblock.push_back(1);codelblock.push_back(9);codelblock.push_back(1);codelblock.push_back(1);codelblock.push_back(8);codelblock.push_back(1);codelblock.push_back(1);codelblock.push_back(1);codelblock.push_back(12);codelblock.push_back(1);codelblock.push_back(1);codelblock.push_back(1);codelblock.push_back(14);codelblock.push_back(1);codelblock.push_back(1);codelblock.push_back(10);codelblock.push_back(2);codelblock.push_back(3);codelblock.push_back(1);codelblock.push_back(1);codelblock.push_back(9);codelblock.push_back(1);codelblock.push_back(1);codelblock.push_back(3);codelblock.push_back(1);codelblock.push_back(3);codelblock.push_back(1);codelblock.push_back(33);codelblock.push_back(1);codelblock.push_back(1);codelblock.push_back(10);codelblock.push_back(1);codelblock.push_back(3);
 
	node_t *st = nullptr;
	int nowgroup=0;
	int dp=0;
	int cc=0;
	int endcount=0;
	while(endcount<8){
		if(proceed[nowgroup][dp][cc].process==-1 || proceed[nowgroup][dp][cc].next==-1){
			if(endcount%2==0)
				cc=(cc+1)%2;
			else
				dp=(dp+1)%4;
			endcount++;
		}else{
			bool flag=true;
			endcount=0;
			if(proceed[nowgroup][dp][cc].process==PUSH)
				st = push(st, codelblock[nowgroup]);
			else if(proceed[nowgroup][dp][cc].process==POP)
				st = pop(st);
			else if(proceed[nowgroup][dp][cc].process==ADD){
				ll a=top(st);st=pop(st);
				ll b=top(st);st=pop(st);
				st=push(st, b+a);
			}else if(proceed[nowgroup][dp][cc].process==SUB){
				ll a=top(st);st=pop(st);
				ll b=top(st);st=pop(st);
				st=push(st, b-a);
			}else if(proceed[nowgroup][dp][cc].process==MULTI){
				ll a=top(st);st=pop(st);
				ll b=top(st);st=pop(st);
				st=push(st, b*a);
			}else if(proceed[nowgroup][dp][cc].process==DIV){
				ll a=top(st);st=pop(st);
				ll b=top(st);st=pop(st);
				st=push(st, b/a);
			}else if(proceed[nowgroup][dp][cc].process==MOD){
				ll a=top(st);st=pop(st);
				ll b=top(st);st=pop(st);
				st=push(st, b%a);
			}else if(proceed[nowgroup][dp][cc].process==NOT){
				int a=top(st);
				st=pop(st);
				if(a!=0) st=push(st, 0);
				else st=push(st, 1);
			}else if(proceed[nowgroup][dp][cc].process==GREAT){
				ll a=top(st);st=pop(st);
				ll b=top(st);st=pop(st);
				st=push(st, a<b);
			}else if(proceed[nowgroup][dp][cc].process==POINT){
				int a=top(st);
				st=pop(st);
				nowgroup=proceed[nowgroup][dp][cc].next;
				dp=(dp+a%4)%4;
				flag=false;
			}else if(proceed[nowgroup][dp][cc].process==SWITCH){
				int a=top(st);
				st=pop(st);
				nowgroup=proceed[nowgroup][dp][cc].next;
				cc=(cc+a%2)%2;
				flag=false;
			}else if(proceed[nowgroup][dp][cc].process==DUP){
				int a=top(st);
				st=push(st, a);
			}else if(proceed[nowgroup][dp][cc].process==ROLL){
				ll a=top(st);st=pop(st);
				ll b=top(st);st=pop(st);
				st = shift(st, count(st) - b, count(st), a);
			}else if(proceed[nowgroup][dp][cc].process==INN){
				ll a;
				cin >> a;
				st=push(st, a);
			}else if(proceed[nowgroup][dp][cc].process==INC){
				unsigned char c[5]={0};
				scanf("%c",&c[0]);
				int rest;
				if(c[0]<0x80)
					rest=0;
				else if(c[0]<0xE0)
					rest=1;
				else if(c[0]<0xF0)
					rest=2;
				else
					rest=3;
				for(int i=0;i<rest;i++)
					scanf("%c",&c[i+1]);
				int a=c[0]+(c[1]<<8)+(c[2]<<16)+(c[3]<<24);
				st=push(st, a);
			}else if(proceed[nowgroup][dp][cc].process==OUTN){
				ll a=top(st);
				st=pop(st);
				cout << a;
			}else if(proceed[nowgroup][dp][cc].process==OUTC){
				int a=top(st);
				st=pop(st);
				unsigned char c[5]={0};
				c[0]=a%(1<<8);a=a>>8;
				c[1]=a%(1<<8);a=a>>8;
				c[2]=a%(1<<8);a=a>>8;
				c[3]=a%(1<<8);a=a>>8;
				printf("%s",c);
			}
			if(flag)
				nowgroup=proceed[nowgroup][dp][cc].next;
		}
	}
	return 0;
}

Submission Info

Submission Time
Task A - Between Two Integers
User base64
Language C++14 (GCC 5.4.1)
Score 100
Code Size 18082 Byte
Status AC
Exec Time 1 ms
Memory 256 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:198:22: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
     scanf("%c",&c[0]);
                      ^
./Main.cpp:209:25: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
      scanf("%c",&c[i+1]);
                         ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 3
AC × 10
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_1.txt, subtask_1_2.txt, subtask_1_3.txt, subtask_1_4.txt, subtask_1_5.txt, subtask_1_6.txt, subtask_1_7.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB
sample_03.txt AC 1 ms 256 KB
subtask_1_1.txt AC 1 ms 256 KB
subtask_1_2.txt AC 1 ms 256 KB
subtask_1_3.txt AC 1 ms 256 KB
subtask_1_4.txt AC 1 ms 256 KB
subtask_1_5.txt AC 1 ms 256 KB
subtask_1_6.txt AC 1 ms 256 KB
subtask_1_7.txt AC 1 ms 256 KB