제출 #469971

#제출 시각아이디문제언어결과실행 시간메모리
469971rainboyLozinke (COCI17_lozinke)C11
100 / 100
27 ms8128 KiB
#include <stdio.h> #include <string.h> #define N 20000 #define L 10 #define N_ (2 + N * L) #define A 26 int main() { static char ss[N][L + 1], used[N_]; static int ll[N], tt[N_][A], kk[N_]; int n, n_, h, h_, i, t, ans; scanf("%d", &n); n_ = 2; for (i = 0; i < n; i++) { scanf("%s", ss[i]), ll[i] = strlen(ss[i]); for (h = 0, t = 1; h < ll[i]; h++) { int a = ss[i][h] - 'a'; if (!tt[t][a]) tt[t][a] = n_++; t = tt[t][a]; } kk[t]++; } ans = 0; for (i = 0; i < n; i++) { for (h = 0; h < ll[i]; h++) for (h_ = h, t = 1; h_ < ll[i]; h_++) { t = tt[t][ss[i][h_] - 'a']; if (!used[t]) ans += kk[t], used[t] = 1; } for (h = 0; h < ll[i]; h++) for (h_ = h, t = 1; h_ < ll[i]; h_++) { t = tt[t][ss[i][h_] - 'a']; used[t] = 0; } } ans -= n; printf("%d\n", ans); return 0; }

컴파일 시 표준 에러 (stderr) 메시지

lozinke.c: In function 'main':
lozinke.c:14:2: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   14 |  scanf("%d", &n);
      |  ^~~~~~~~~~~~~~~
lozinke.c:17:3: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   17 |   scanf("%s", ss[i]), ll[i] = strlen(ss[i]);
      |   ^~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...