Submission #3106198
Source Code Expand
#include <bits/stdc++.h> #define N 1000000007 using namespace std; int n, m, q, k, x; int a[2005] = {0}; // dp[i][j] = combi i:type j:num int dp[2005][2005] = {0}; // ans[i][j] = combi i:not use j:num int ans[2005][2005] = {0}; void solve(); int main() { int i; cin >> n >> m >> q; for(i = 0; i < n; ++i) cin >> a[i]; solve(); for(i = 0; i < q; ++i) { cin >> k >> x; cout << ans[k][m - x] << endl; } return 0; } void solve() { int i, j; for(i = 0; i <= n; ++i) dp[i][0] = 1; for(i = 1; i <= n; ++i) for(j = 1; j <= m; ++j) { dp[i][j] = dp[i][j - 1] + dp[i - 1][j]; dp[i][j] %= N; if(j - a[i - 1] - 1 >= 0) dp[i][j] -= dp[i - 1][j - a[i - 1] - 1]; while(dp[i][j] < 0) dp[i][j] += N; dp[i][j] %= N; } for(i = 1; i <= n; ++i) { for(j = 0; j <= m; ++j) { ans[i][j] = dp[n][j] % N; if(j != 0) ans[i][j] -= dp[n][j - 1]; ans[i][j] %= N; if(j - a[i - 1] - 1 >= 0) ans[i][j] += ans[i][j - a[i - 1] - 1]; while(dp[i][j] < 0) dp[i][j] += N; ans[i][j] += % N; } } }
Submission Info
Submission Time | |
---|---|
Task | A - 小石を取るゲーム |
User | m_tsubasa |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 1136 Byte |
Status | CE |
Compile Error
./Main.cpp: In function ‘void solve()’: ./Main.cpp:46:20: error: expected primary-expression before ‘%’ token ans[i][j] += % N; ^