# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
284874 | 2020-08-28T07:24:59 Z | arnold518 | Žarulje (COI15_zarulje) | C++14 | 18 ms | 16384 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; int dp[MAXN+10][MAXN+10]; int solve(int l, int r) { if(l==1 && r==N) return 1; int &ret=dp[l][r]; if(ret!=-1) return ret; if(l==0) return ret=solve(l, r+1); if(r==N) return ret=solve(l-1, r); if(A[l-1]<A[r+1]) return ret=solve(l, r+1); if(A[l-1]>A[r+1]) return ret=solve(l-1, 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]); memset(dp, -1, sizeof(dp)); while(Q--) { int k; scanf("%d", &k); printf("%d\n", solve(k, k)); } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 10 ms | 16128 KB | Output is correct |
2 | Correct | 10 ms | 16256 KB | Output is correct |
3 | Correct | 18 ms | 16384 KB | Output is correct |
4 | Correct | 12 ms | 16256 KB | Output is correct |
5 | Correct | 11 ms | 16256 KB | Output is correct |
6 | Correct | 11 ms | 16256 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 11 ms | 16384 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 10 ms | 16128 KB | Output is correct |
2 | Correct | 10 ms | 16256 KB | Output is correct |
3 | Correct | 18 ms | 16384 KB | Output is correct |
4 | Correct | 12 ms | 16256 KB | Output is correct |
5 | Correct | 11 ms | 16256 KB | Output is correct |
6 | Correct | 11 ms | 16256 KB | Output is correct |
7 | Incorrect | 11 ms | 16384 KB | Output isn't correct |
8 | Halted | 0 ms | 0 KB | - |