Submission #101187

#TimeUsernameProblemLanguageResultExecution timeMemory
101187Pro_ktmr기억 압축 (JOI15_memory)C++14
100 / 100
2790 ms276908 KiB
#include"Memory_lib.h"

int Memory(int N, int M){
    int roopCount = (M >> 15) % (1 << 7);
    int now = (M >> 8) % (1 << 7);
    int length = (M >> 1) % (1 << 7);
    int stack = (M >> 0) % (1 << 1);
    if(roopCount >= N || now >= N || length >= N) return 0;

    char c = Get(now+1);
    if(c == '<'){
        if(length == roopCount) stack = 0;
        length++;
    }
    if(c == '['){
        if(length == roopCount) stack = 1;
        length++;
    }
    if(c == '>'){
        if(length == 0) return -2;
        length--;
        if(length == roopCount && stack != 0) return -2;
    }
    if(c == ']'){
        if(length == 0) return -2;
        length--;
        if(length == roopCount && stack != 1) return -2;
    }

    now++;
    if(now == N){
        if(length != 0) return -2;
        roopCount++;
        now = 0;
        length = 0;
        stack = 0;
    }
    if(roopCount == N) return -1;
    return (roopCount<<15) | (now<<8) | (length<<1) | (stack<<0);
}
#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...