Submission #284887

#TimeUsernameProblemLanguageResultExecution timeMemory
284887arnold518Ruka (COI15_ruka)C++14
0 / 100
580 ms524288 KiB
#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>r) return 0; if(l==0 && r==N+1) return 1; if(dp[l][r]!=-1) return dp[l][r]; int &ret=dp[l][r]; if(l==0) return ret=solve(l, r+1); if(r==N+1) return ret=solve(l-1, r); if(A[l]<A[r]) return ret=solve(l, r+1); if(A[l]>A[r]) 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-1, k+1)); } }

Compilation message (stderr)

ruka.cpp: In function 'int main()':
ruka.cpp:30:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   30 |  scanf("%d%d", &N, &Q);
      |  ~~~~~^~~~~~~~~~~~~~~~
ruka.cpp:31:31: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   31 |  for(int i=1; i<=N; i++) scanf("%d", &A[i]);
      |                          ~~~~~^~~~~~~~~~~~~
ruka.cpp:37:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   37 |   scanf("%d", &k);
      |   ~~~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...