Submission #297684

#TimeUsernameProblemLanguageResultExecution timeMemory
297684penguinhackerSecret (JOI14_secret)C++17
6 / 100
9349 ms4472 KiB
#include <bits/stdc++.h> #include "secret.h" using namespace std; /*int Secret(int a, int b) { return min(a, b); }*/ const int mxN = 1000, mxK = 10; int n, a[mxN]; int tl[mxN][mxK], tr[mxN][mxK]; void Init(int N, int A[]) { n = N; for (int i = 0; i < n; ++i) { a[i] = A[i]; } /*for (int j = 0; (1 << j) <= n; ++j) { int mask = (1 << j) - 1; int temp; for (int i = 0; i < n; ++i) { temp = ((i & mask) == 0) ? a[i] : Secret(temp, a[i]); tr[i][j] = temp; } for (int i = n - 1; ~i; --i) { temp = ((i & mask) == mask || i == n - 1) ? a[i] : Secret(a[i], temp); tl[i][j] = temp; } }*/ } int Query(int L, int R) { if (L == R) return a[L]; if (R == L + 1) return Secret(a[L], a[R]); //int x = 31 - __builtin_clz(L ^ R); //return Secret(tl[L][x], tr[R][x]); int ans = a[L]; for (int i = L + 1; i <= R; ++i) { ans = Secret(ans, a[i]); } return ans; } /*int main() { ios::sync_with_stdio(0); cin.tie(0); int a[3] = {2, 1, 3}; Init(3, a); for (int i = 0; i < 3; ++i) for (int j = i; j < 3; ++j) cout << i << " " << j << " " << Query(i, j) << "\n"; return 0; }*/
#Verdict Execution timeMemoryGrader output
Fetching results...