Submission #76372

#TimeUsernameProblemLanguageResultExecution timeMemory
76372MiricaMateiSecret (JOI14_secret)C++14
0 / 100
840 ms9452 KiB
#include "secret.h" int v[1005][1005]; void solve(int l, int r) { if (l >= r) return ; int med = (l + r) / 2; solve(l, med); solve(med + 1, r); for (int i = med - 1; i >= 1; --i) v[i][med] = Secret(v[i][i], v[i + 1][med]); for (int i = med + 2; i <= r; ++i) v[i][med] = Secret(v[i][i], v[med + 1][i - 1]); } void Init(int N, int A[]) { for (int i = 0; i < N; ++i) for (int j = 0; j < N; ++j) v[i][j] = -1; for (int i = 0; i < N; ++i) v[i][i] = 1; solve(0, N - 1); } int Query(int L, int R) { if (L == R) return v[L][L]; if (R == L + 1) return Secret(v[L][L], v[R][R]); for (int k = L; k < R; ++k) if (v[L][k] != -1 && v[k + 1][R] != -1) return Secret(v[L][k], v[k + 1][R]); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...