Submission #1675429


Source Code Expand

// 基本テンプレート

#include <iostream>
#include <iomanip>
#include <cstdio>
#include <string>
#include <cstring>
#include <deque>
#include <list>
#include <queue>
#include <stack>
#include <vector>
#include <utility>
#include <algorithm>
#include <map>
#include <set>
#include <complex>
#include <cmath>
#include <limits>
#include <cfloat>
#include <climits>
#include <ctime>
#include <cassert>
#include <numeric>
#include <fstream>
#include <functional>
using namespace std;

#define rep(i,a,n) for(int (i)=(a); (i)<(n); (i)++)
#define repq(i,a,n) for(int (i)=(a); (i)<=(n); (i)++)
#define repr(i,a,n) for(int (i)=(a); (i)>=(n); (i)--)
#define int long long int

template<typename T> void chmax(T &a, T b) {a = max(a, b);}
template<typename T> void chmin(T &a, T b) {a = min(a, b);}
template<typename T> void chadd(T &a, T b) {a = a + b;}

typedef pair<int, int> pii;
typedef long long ll;

int dx[] = {0, 0, 1, -1};
int dy[] = {1, -1, 0, 0};
constexpr ll INF = 1001001001001001LL;
constexpr ll MOD = 1000000007LL;

int a[2010];
int dp[2010][2010], dp2[2010][2010];

signed main() {
    int N, M, Q; cin >> N >> M >> Q;
    rep(i,0,N) cin >> a[i];

    dp[0][0] = 1;
    rep(i,0,N) repq(j,0,M) {
        dp[i+1][j] = dp[i][j];
        if(j-1 >= 0)      (dp[i+1][j] += dp[i+1][j-1]         ) %= MOD;
        if(j-a[i]-1 >= 0) (dp[i+1][j] -= dp[i][j-a[i]-1] - MOD) %= MOD;
    }

    rep(i,0,N) repq(j,0,M) {
        dp2[i][j] = dp[N][j];
        if(j-1 >= 0)      (dp2[i][j] -= dp[N][j-1] - MOD) %= MOD;
        if(j-a[i]-1 >= 0) (dp2[i][j] += dp2[i][j-a[i]-1]) %= MOD;
    }

    rep(i,0,Q) {
        int k, x; cin >> k >> x;
        cout << dp2[k-1][M-x] << endl;
    }
    return 0;
}

Submission Info

Submission Time
Task D - 注文の多い高橋商店
User tsutaj
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1767 Byte
Status AC
Exec Time 1100 ms
Memory 68096 KB

Judge Result

Set Name Sample Subtask1 Subtask2 Subtask3 Subtask4
Score / Max Score 0 / 0 10 / 10 20 / 20 50 / 50 20 / 20
Status
AC × 2
AC × 10
AC × 13
AC × 13
AC × 23
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
Subtask1 sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt
Subtask2 sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt
Subtask3 sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask3_01.txt, subtask3_02.txt, subtask3_03.txt
Subtask4 sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask3_01.txt, subtask3_02.txt, subtask3_03.txt, subtask4_01.txt, subtask4_02.txt, subtask4_03.txt, subtask4_04.txt, subtask4_05.txt, subtask4_06.txt, subtask4_07.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 2304 KB
sample_02.txt AC 1 ms 2304 KB
subtask1_01.txt AC 2 ms 2304 KB
subtask1_02.txt AC 1 ms 2304 KB
subtask1_03.txt AC 1 ms 2304 KB
subtask1_04.txt AC 2 ms 2560 KB
subtask1_05.txt AC 2 ms 4864 KB
subtask1_06.txt AC 2 ms 4864 KB
subtask1_07.txt AC 2 ms 4864 KB
subtask1_08.txt AC 2 ms 4864 KB
subtask2_01.txt AC 103 ms 5248 KB
subtask2_02.txt AC 203 ms 5760 KB
subtask2_03.txt AC 201 ms 5632 KB
subtask3_01.txt AC 32 ms 33024 KB
subtask3_02.txt AC 65 ms 63232 KB
subtask3_03.txt AC 50 ms 63232 KB
subtask4_01.txt AC 938 ms 53632 KB
subtask4_02.txt AC 1086 ms 68096 KB
subtask4_03.txt AC 1009 ms 62208 KB
subtask4_04.txt AC 959 ms 3328 KB
subtask4_05.txt AC 1100 ms 68096 KB
subtask4_06.txt AC 1056 ms 64256 KB
subtask4_07.txt AC 1095 ms 67840 KB