Submission details
Task:Contests
Sender:Häviö Life
Submission time:2015-10-07 16:43:48 +0300
Language:C++
Status:READY
Result:
Test results
testverdicttime
#10.05 sdetails
#20.06 sdetails
#30.06 sdetails
#40.05 sdetails
#50.05 sdetails
#60.06 sdetails
#70.05 sdetails
#80.05 sdetails
#90.04 sdetails
#100.05 sdetails
#110.05 sdetails
#120.06 sdetails
#130.06 sdetails
#140.05 sdetails
#15ACCEPTED0.05 sdetails
#160.06 sdetails
#17ACCEPTED0.06 sdetails
#18ACCEPTED0.05 sdetails
#190.05 sdetails
#200.06 sdetails

Code

#include <iostream>
#include <vector>
#include <stack>
#include <queue>
#include <algorithm>
#include <cmath>
#include <iomanip>
#include <unordered_set>
#include <stdio.h>
#include <string.h>
#include <unordered_map>
#include <fstream>
#include <set>
#include <map>

#define MOD 1000000007
#define ll long long
#define N (1<<50)
#define float double
#define str string

using namespace std;

int m[1001][101];

ll lask(int sum, int n){
    if(sum<0||n<0)
        return 0;
    if(m[sum][n]!=-1)
        return m[sum][n];

    ll ret=0;
    for(int i=1; i<=10; i++)
        if(sum-i>=0)
            ret+=lask(sum-i,n-1), ret%=MOD;
    ret%=MOD;
    m[sum][n]=ret;
    return ret;
}

int main(){
    for(int i=0; i<=1000; i++)
        for(int e=0; e<=100; e++)
            m[i][e]=-1;

    m[0][0]=1;

    int n,s;
    cin>>n>>s;
    int kys=0;

    for(int i=0; i<n; i++){
        string a;
        cin>>a;
        if(a=="?")
            kys++;
        else{
            if(a!="10")
                s-=a[0]-'0';
            else
                s-=10;
        }
    }

    cout<<lask(s,kys)<<endl;

    return 0;
}

Test details

Test 1

Verdict:

input
100 722
10 ? 8 ? 8 5 1 3 ? 2 5 3 1 ? ?...

correct output
55143150

user output
543725694

Test 2

Verdict:

input
100 741
1 6 ? 7 2 ? 5 1 2 3 10 ? ? 5 4...

correct output
598236954

user output
714295431

Test 3

Verdict:

input
25 83
? 5 4 7 9 ? 3 ? ? 4 3 5 ? ? ? ...

correct output
77504288

user output
144841275

Test 4

Verdict:

input
100 729
8 5 5 2 9 ? 2 ? ? 1 5 ? ? 9 ? ...

correct output
579081161

user output
15143987

Test 5

Verdict:

input
3 11
7 ? ? 

correct output
5

user output
3

Test 6

Verdict:

input
100 423
? ? ? ? ? 3 ? 6 ? 2 ? ? 9 1 5 ...

correct output
73043117

user output
155775579

Test 7

Verdict:

input
100 706
3 ? 9 ? ? ? ? ? ? 9 ? 1 ? 1 5 ...

correct output
169594458

user output
962493283

Test 8

Verdict:

input
100 719
10 ? 2 ? 8 ? ? 4 7 ? 1 ? ? ? ?...

correct output
371478559

user output
759365015

Test 9

Verdict:

input
75 545
9 ? 9 ? 10 9 9 1 5 ? 2 ? 5 9 4...

correct output
189257897

user output
168059902

Test 10

Verdict:

input
100 661
? 8 ? 8 10 ? ? 5 ? 5 10 ? ? 1 ...

correct output
589662095

user output
98763640

Test 11

Verdict:

input
32 172
? ? ? ? ? ? 7 8 ? ? 9 ? ? 1 7 ...

correct output
319164449

user output
384537050

Test 12

Verdict:

input
100 580
8 ? 9 ? ? 6 4 ? ? ? 6 ? ? 4 ? ...

correct output
671479185

user output
15935521

Test 13

Verdict:

input
96 724
1 ? ? ? 7 ? ? ? 10 ? ? 7 2 ? 8...

correct output
627075870

user output
629221055

Test 14

Verdict:

input
100 289
4 ? 9 ? 6 ? ? 2 ? ? 1 8 ? ? ? ...

correct output
672526186

user output
0

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:

input
100 0
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ...

correct output
1

user output
0

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:

input
57 213
? ? 8 ? ? ? 10 1 1 8 ? ? 6 5 4...

correct output
843378101

user output
30260340

Test 20

Verdict:

input
100 306
? 10 ? ? ? 10 6 ? ? ? 3 7 1 ? ...

correct output
646826362

user output
0