Submission #56238

# Submission time Handle Problem Language Result Execution time Memory
56238 2018-07-10T14:16:54 Z model_code None (JOI15_memory) C++17
100 / 100
3449 ms 276964 KB
#include "Memory_lib.h"

int Memory(int N, int M) {
  int target   = (M >>  0) & ((1 << 7) - 1);
  int position = (M >>  7) & ((1 << 7) - 1);
  int depth    = (M >> 14) & ((1 << 7) - 1);
  int last     = (M >> 21) & ((1 << 1) - 1);
  if (target >= N || position >= N || depth >= N + 1 || last >= 2) {
    return 0;
  }
  switch (Get(position + 1)) {
    case '<':
      if (depth++ == target) {
        last = 0;
      }
      break;
    case '>':
      if (depth == 0) {
        return -2;
      }
      if (--depth == target) {
        if (last != 0) {
          return -2;
        }
      }
      break;
    case '[':
      if (depth++ == target) {
        last = 1;
      }
      break;
    case ']':
      if (depth == 0) {
        return -2;
      }
      if (--depth == target) {
        if (last != 1) {
          return -2;
        }
      }
      break;
    default:
      return -2;
  }
  if (++position == N) {
    if (depth != 0) {
      return -2;
    }
    if (++target == N) {
      return -1;
    }
    position = 0;
    depth = 0;
  }
  return target << 0 | position << 7 | depth << 14 | last << 21;
}
# Verdict Execution time Memory Grader output
1 Correct 2965 ms 276720 KB Output is correct
2 Correct 2591 ms 276788 KB Output is correct
3 Correct 2668 ms 276788 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2965 ms 276720 KB Output is correct
2 Correct 2591 ms 276788 KB Output is correct
3 Correct 2668 ms 276788 KB Output is correct
4 Correct 3071 ms 276964 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2965 ms 276720 KB Output is correct
2 Correct 2591 ms 276788 KB Output is correct
3 Correct 2668 ms 276788 KB Output is correct
4 Correct 3071 ms 276964 KB Output is correct
5 Correct 3042 ms 276964 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2965 ms 276720 KB Output is correct
2 Correct 2591 ms 276788 KB Output is correct
3 Correct 2668 ms 276788 KB Output is correct
4 Correct 3071 ms 276964 KB Output is correct
5 Correct 3042 ms 276964 KB Output is correct
6 Correct 2749 ms 276964 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3103 ms 276964 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2965 ms 276720 KB Output is correct
2 Correct 2591 ms 276788 KB Output is correct
3 Correct 2668 ms 276788 KB Output is correct
4 Correct 3071 ms 276964 KB Output is correct
5 Correct 3042 ms 276964 KB Output is correct
6 Correct 2749 ms 276964 KB Output is correct
7 Correct 3103 ms 276964 KB Output is correct
8 Correct 3449 ms 276964 KB Output is correct
9 Correct 3281 ms 276964 KB Output is correct