Submission #1037120

# Submission time Handle Problem Language Result Execution time Memory
1037120 2024-07-28T07:27:33 Z clementine None (JOI15_memory) C++17
Compilation error
0 ms 0 KB
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int Memory(int N, int M);

#define MAX_N 100
#define FORMAT_S "%101s"
#define LENGTH_S 102
#define LIMIT_M 4194304  // 2^22
#define MAX_NUM_DAYS 15000

static int N, Q;
static char S[LENGTH_S];

static void Wrong(int message) {
  printf("Wrong Answer [%d]\n", message);
  exit(0);
}

static int get_called;
static int get_I;

char Get(int I) {
  if (get_called) {
    Wrong(2);
  }
  get_called = 1;
  get_I = I;
  if (!(1 <= I && I <= N)) {
    Wrong(3);
  }
  return S[I - 1];
}

int main(void) {
  int M;
  int test_index;
  int num_days;

  if (scanf("%d%d", &N, &Q) != 2) {
    fprintf(stderr, "error: cannot read N, Q\n");
    exit(1);
  }
  if (!(1 <= N && N <= MAX_N)) {
    fprintf(stderr, "error: N is out of bounds\n");
    exit(1);
  }
  if (Q < 0) {
    fprintf(stderr, "error: Q is out of bounds\n");
    exit(1);
  }

  for (test_index = 0; test_index < Q; ++test_index) {
    if (scanf(FORMAT_S, S) != 1) {
      fprintf(stderr, "error: cannot read S\n");
      exit(1);
    }
    if (N != (int)strlen(S)) {
      fprintf(stderr, "error: the length of S is not N\n");
      exit(1);
    }
    num_days = 0;
    M = 0;
    for (; ; ) {
      get_called = 0;
      get_I = 0;
      M = Memory(N, M);
      if (!((0 <= M && M < LIMIT_M) || M == -1 || M == -2)) {
        Wrong(1);
      }
      if (M == -1 || M == -2) {
        break;
      }
      if (++num_days >= MAX_NUM_DAYS) {
        Wrong(5);
      }
    }
    printf("%d\n", M);
  }

  return 0;
}

Compilation message

/usr/bin/ld: /tmp/ccECUt6r.o: in function `Get(int)':
grader.cpp:(.text+0x30): multiple definition of `Get(int)'; /tmp/ccJAMLop.o:memory.cpp:(.text+0x30): first defined here
/usr/bin/ld: /tmp/ccECUt6r.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccJAMLop.o:memory.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/ccJAMLop.o: in function `main':
memory.cpp:(.text.startup+0xb2): undefined reference to `Memory(int, int)'
/usr/bin/ld: /tmp/ccECUt6r.o: in function `main':
grader.cpp:(.text.startup+0xcd): undefined reference to `Memory(int, int)'
collect2: error: ld returned 1 exit status