# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
284913 | 2020-08-28T07:57:28 Z | arnold518 | Žarulje (COI15_zarulje) | C++14 | 13 ms | 1792 KB |
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef pair<ll, ll> pll; const int MAXN = 2000; const int MOD = 1e9+7; int N, A[MAXN+10], Q; map<pii, int> M; int solve(int l, int r) { while(A[l]!=A[r]) { if(l==0) r++; else if(r==N+1) l--; else if(A[l]<A[r]) r++; else if(A[l]>A[r]) l--; } if(l==0 && r==N+1) return 1; if(M.find({l, r})!=M.end()) return M[{l, r}]; int &ret=M[{l, r}]; return ret=(solve(l-1, r)+solve(l, r+1))%MOD; } int main() { scanf("%d%d", &N, &Q); for(int i=1; i<=N; i++) scanf("%d", &A[i]); while(Q--) { int k; scanf("%d", &k); printf("%d\n", solve(k-1, k+1)); } }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 384 KB | Output is correct |
2 | Correct | 1 ms | 384 KB | Output is correct |
3 | Correct | 13 ms | 1792 KB | Output is correct |
4 | Correct | 2 ms | 384 KB | Output is correct |
5 | Correct | 2 ms | 256 KB | Output is correct |
6 | Correct | 6 ms | 256 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Runtime error | 1 ms | 384 KB | Execution killed with signal 11 |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 384 KB | Output is correct |
2 | Correct | 1 ms | 384 KB | Output is correct |
3 | Correct | 13 ms | 1792 KB | Output is correct |
4 | Correct | 2 ms | 384 KB | Output is correct |
5 | Correct | 2 ms | 256 KB | Output is correct |
6 | Correct | 6 ms | 256 KB | Output is correct |
7 | Runtime error | 1 ms | 384 KB | Execution killed with signal 11 |
8 | Halted | 0 ms | 0 KB | - |