이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "Memory_lib.h"
#include <stdio.h>
const int sq7 = 128;
const int sq6 = 64;
int concat(int l,int r,int op,int mode) {
	return mode + (op << 2) + (r << 8) + (l << 15);
}
int Memory(int N, int M) {
	if (N & 1) return -2;
	int mode = M & 3; M >>= 2;
	int op = M & (sq6 - 1); M >>= 6;
	int r = M & (sq7 - 1); // i
	int l = M >> 7; //j
	printf("%d,%d,%d,%d\n",l,r,op,mode);
	if (r == N)
		return op ? -2 : -1;
	if (l == N) return -2;
	char c = Get(l + 1);
	if (l == r) {
		++l;
		if (c == ']' || c == '>') {
			if (--op < 0) return -2;
			return concat(l,++r,op,mode);
		}
		else {
			mode = (c == '[') + 1;
			op = 1;
			return concat(l, r, op, mode);
		}
	}
	else {
		switch (c) {
		case '<':case '[':
			++op;
			break;
		case '>':
			--op;
			if (op < 0) return -2;
			if (l > r && op == 0) {
				if (mode != 1) return -2;
				return concat(0, ++r, op, 0);
			}
			break;
		case ']':
			--op;
			if (op < 0) return -2;
			if (l > r && op == 0) {
				if (mode != 2) return -2;
				return concat(0, ++r, op, 0);
			}
			break;
		}
		++l;
	}
	//op>50 chk
	if (op > (N >> 1)) return -2;
	return concat(l,r,op,mode);
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |