Submission #56894

# Submission time Handle Problem Language Result Execution time Memory
56894 2018-07-13T05:51:26 Z 윤교준(#1636) None (JOI15_memory) C++11
40 / 100
3800 ms 276984 KB
#include "Memory_lib.h"
#include <bits/stdc++.h>
#define pb push_back
#define eb emplace_back
#define sz(V) ((int)(V).size())
using namespace std;

int Memory(int N, int M) {
	if(N&1) return -2;

	if(N <= 30) {
		int L = M & ((1<<5)-1);
		int key = M >> 5;
		int kl = 0;
		for(; (1<<(kl+1))-2 < key; kl++);
		if(N < L || L < kl) return -2;

		key -= ((1<<kl)-1);

		if(L == N)
			return kl ? -2 : -1;

		switch(Get(L+1)) {
		case '<':
			kl++;
			key = key<<1 | 1;
			break;
		case '[':
			kl++;
			key <<= 1;
			break;
		case '>':
			if(!kl || !(key & 1))
				return -2;
			kl--;
			key >>= 1;
			break;
		case ']':
			if(!kl || (key & 1))
				return -2;
			kl--;
			key >>= 1;
			break;
		}

		if((N>>1) < kl) return -2;

		key += (1<<kl)-1;
		L++;

		return (key << 5) | L;
	} else {
		int L = M & ((1<<7)-1);
		int key = M >> 7;

		if(N < L || L < key) return -2;
		if(L == N) return key ? -2 : -1;

		key += ('<' == Get(L+1) ? 1 : -1);
		if(key < 0) return -2;

		L++;
		return (key << 7) | L;
	}
}
# Verdict Execution time Memory Grader output
1 Correct 2729 ms 276780 KB Output is correct
2 Correct 3121 ms 276788 KB Output is correct
3 Correct 3529 ms 276788 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2729 ms 276780 KB Output is correct
2 Correct 3121 ms 276788 KB Output is correct
3 Correct 3529 ms 276788 KB Output is correct
4 Correct 3800 ms 276788 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2729 ms 276780 KB Output is correct
2 Correct 3121 ms 276788 KB Output is correct
3 Correct 3529 ms 276788 KB Output is correct
4 Correct 3800 ms 276788 KB Output is correct
5 Correct 3642 ms 276812 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2729 ms 276780 KB Output is correct
2 Correct 3121 ms 276788 KB Output is correct
3 Correct 3529 ms 276788 KB Output is correct
4 Correct 3800 ms 276788 KB Output is correct
5 Correct 3642 ms 276812 KB Output is correct
6 Correct 3762 ms 276812 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3123 ms 276984 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2729 ms 276780 KB Output is correct
2 Correct 3121 ms 276788 KB Output is correct
3 Correct 3529 ms 276788 KB Output is correct
4 Correct 3800 ms 276788 KB Output is correct
5 Correct 3642 ms 276812 KB Output is correct
6 Correct 3762 ms 276812 KB Output is correct
7 Correct 3123 ms 276984 KB Output is correct
8 Correct 3381 ms 276984 KB Output is correct
9 Incorrect 3288 ms 276984 KB Wrong Answer [6]