Task: | Contests |
Sender: | infosec |
Submission time: | 2015-10-07 17:43:18 +0300 |
Language: | C++ |
Status: | READY |
Result: | ACCEPTED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.07 s | details |
#2 | ACCEPTED | 0.05 s | details |
#3 | ACCEPTED | 0.05 s | details |
#4 | ACCEPTED | 0.05 s | details |
#5 | ACCEPTED | 0.05 s | details |
#6 | ACCEPTED | 0.06 s | details |
#7 | ACCEPTED | 0.05 s | details |
#8 | ACCEPTED | 0.05 s | details |
#9 | ACCEPTED | 0.05 s | details |
#10 | ACCEPTED | 0.06 s | details |
#11 | ACCEPTED | 0.05 s | details |
#12 | ACCEPTED | 0.05 s | details |
#13 | ACCEPTED | 0.05 s | details |
#14 | ACCEPTED | 0.06 s | details |
#15 | ACCEPTED | 0.05 s | details |
#16 | ACCEPTED | 0.05 s | details |
#17 | ACCEPTED | 0.06 s | details |
#18 | ACCEPTED | 0.05 s | details |
#19 | ACCEPTED | 0.05 s | details |
#20 | ACCEPTED | 0.05 s | details |
Code
#include <stdio.h> #include <string.h> #include <iostream> #include <fstream> #include <sstream> #include <queue> #include <algorithm> #include <vector> #include <set> #include <cstdlib> #include <stack> using namespace std; #define all(x) (x).begin(),x.end() #define ii pair<int, int> #define pb push_back #define mp make_pair #define fi first #define se second #define ll long long #define MAXN 101 #define MAXS 1001 const int INF = 1000000007; int a[MAXN]; int dp[MAXN][MAXS]; int n, s; int main() { cin >> n >> s; string tmp; for (int i = 0; i < n; i++) { cin >> tmp; if (tmp.compare("?") == 0) { a[i] = -1; } else { a[i] = stoi(tmp); } } memset(dp, 0, sizeof(dp)); if (a[0] == -1) { for (int i = 0; i <= 10; i++) { dp[0][i] = 1; } } else { dp[0][a[0]] = 1; } for (int i = 1; i < n; i++) { for (int j = 0; j <= s; j++) { if (a[i] != -1) { if (j >= a[i]) { dp[i][j] = dp[i-1][j-a[i]]; } } else { int tmp = min(j, 10); for (int k = 0; k <= tmp; k++) { dp[i][j] = (dp[i][j] + dp[i-1][j-k]) % INF; } } } } cout << dp[n-1][s]; return 0; }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
100 722 10 ? 8 ? 8 5 1 3 ? 2 5 3 1 ? ?... |
correct output |
---|
55143150 |
user output |
---|
55143150 |
Test 2
Verdict: ACCEPTED
input |
---|
100 741 1 6 ? 7 2 ? 5 1 2 3 10 ? ? 5 4... |
correct output |
---|
598236954 |
user output |
---|
598236954 |
Test 3
Verdict: ACCEPTED
input |
---|
25 83 ? 5 4 7 9 ? 3 ? ? 4 3 5 ? ? ? ... |
correct output |
---|
77504288 |
user output |
---|
77504288 |
Test 4
Verdict: ACCEPTED
input |
---|
100 729 8 5 5 2 9 ? 2 ? ? 1 5 ? ? 9 ? ... |
correct output |
---|
579081161 |
user output |
---|
579081161 |
Test 5
Verdict: ACCEPTED
input |
---|
3 11 7 ? ? |
correct output |
---|
5 |
user output |
---|
5 |
Test 6
Verdict: ACCEPTED
input |
---|
100 423 ? ? ? ? ? 3 ? 6 ? 2 ? ? 9 1 5 ... |
correct output |
---|
73043117 |
user output |
---|
73043117 |
Test 7
Verdict: ACCEPTED
input |
---|
100 706 3 ? 9 ? ? ? ? ? ? 9 ? 1 ? 1 5 ... |
correct output |
---|
169594458 |
user output |
---|
169594458 |
Test 8
Verdict: ACCEPTED
input |
---|
100 719 10 ? 2 ? 8 ? ? 4 7 ? 1 ? ? ? ?... |
correct output |
---|
371478559 |
user output |
---|
371478559 |
Test 9
Verdict: ACCEPTED
input |
---|
75 545 9 ? 9 ? 10 9 9 1 5 ? 2 ? 5 9 4... |
correct output |
---|
189257897 |
user output |
---|
189257897 |
Test 10
Verdict: ACCEPTED
input |
---|
100 661 ? 8 ? 8 10 ? ? 5 ? 5 10 ? ? 1 ... |
correct output |
---|
589662095 |
user output |
---|
589662095 |
Test 11
Verdict: ACCEPTED
input |
---|
32 172 ? ? ? ? ? ? 7 8 ? ? 9 ? ? 1 7 ... |
correct output |
---|
319164449 |
user output |
---|
319164449 |
Test 12
Verdict: ACCEPTED
input |
---|
100 580 8 ? 9 ? ? 6 4 ? ? ? 6 ? ? 4 ? ... |
correct output |
---|
671479185 |
user output |
---|
671479185 |
Test 13
Verdict: ACCEPTED
input |
---|
96 724 1 ? ? ? 7 ? ? ? 10 ? ? 7 2 ? 8... |
correct output |
---|
627075870 |
user output |
---|
627075870 |
Test 14
Verdict: ACCEPTED
input |
---|
100 289 4 ? 9 ? 6 ? ? 2 ? ? 1 8 ? ? ? ... |
correct output |
---|
672526186 |
user output |
---|
672526186 |
Test 15
Verdict: ACCEPTED
input |
---|
12 0 0 0 0 0 0 0 0 0 0 0 0 0 |
correct output |
---|
1 |
user output |
---|
1 |
Test 16
Verdict: ACCEPTED
input |
---|
100 0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ... |
correct output |
---|
1 |
user output |
---|
1 |
Test 17
Verdict: ACCEPTED
input |
---|
70 700 10 10 10 10 10 10 10 10 10 10 ... |
correct output |
---|
1 |
user output |
---|
1 |
Test 18
Verdict: ACCEPTED
input |
---|
100 1000 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ... |
correct output |
---|
1 |
user output |
---|
1 |
Test 19
Verdict: ACCEPTED
input |
---|
57 213 ? ? 8 ? ? ? 10 1 1 8 ? ? 6 5 4... |
correct output |
---|
843378101 |
user output |
---|
843378101 |
Test 20
Verdict: ACCEPTED
input |
---|
100 306 ? 10 ? ? ? 10 6 ? ? ? 3 7 1 ? ... |
correct output |
---|
646826362 |
user output |
---|
646826362 |