Submission #197989

# Submission time Handle Problem Language Result Execution time Memory
197989 2020-01-24T12:41:36 Z model_code Lampice (COCI19_lampice) C++17
25 / 110
4 ms 888 KB
#include <bits/stdc++.h>

using namespace std;

#define TRACE(x) cerr << #x << " " << x << endl
#define FOR(i, a, b) for (int i = (a); i < int(b); ++i)
#define REP(i, n) FOR(i, 0, n)
#define _ << " " <<

typedef long long llint;

using namespace std;

const int MAXN = 5e4 + 10;

char S[MAXN], T[2 * MAXN];

int n, t_len;
int P[2*MAXN];

inline void preprocess() {
  T[t_len++] = '!';
  for (int i = 0; i < n; ++i) {
    T[t_len++] = '#';
    T[t_len++] = S[i];
  }
  T[t_len++] = '#';
  T[t_len++] = '@';
}

int main(void) {
  scanf("%d", &n);
  scanf("%s", S);

  preprocess();

  int mid = 0, hi = 0, sol = 0;
  for (int i = 1; i < t_len - 1; ++i) {
      int _i = mid - (i - mid);
      if (hi > i)
          P[i] = min(hi - i, P[_i]);

      while (T[i + P[i] + 1] == T[i - P[i] - 1])
          ++P[i];

      if (i + P[i] > hi) {
          mid = i;
          hi = i + P[i];
      }
      sol = max(sol, P[i]);
  }

  printf("%d\n", sol);
  return 0;
}

Compilation message

lampice.cpp: In function 'int main()':
lampice.cpp:32:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", &n);
   ~~~~~^~~~~~~~~~
lampice.cpp:33:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%s", S);
   ~~~~~^~~~~~~~~
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 376 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 3 ms 760 KB Output is correct
2 Correct 3 ms 760 KB Output is correct
3 Correct 3 ms 888 KB Output is correct
4 Correct 3 ms 820 KB Output is correct
5 Correct 3 ms 888 KB Output is correct
6 Correct 3 ms 888 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 4 ms 888 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 376 KB Output isn't correct
2 Halted 0 ms 0 KB -