Submission #337896


Source Code Expand

#include <iostream>
#include <cstdio>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <deque>
#include <stack>
#include <algorithm>
#include <cstring>
#include <functional>
#include <cmath>
#include <utility>
#include <complex>
using namespace std;
#define rep(i,n) for(int i=0;i<(n);++i)
#define rep1(i,n) for(int i=1;i<=(n);++i)
#define all(c) (c).begin(),(c).end()
#define fs first
#define sc second
#define pb push_back
#define show(x) cout << #x << " " << x << endl
typedef long long ll;
ll mod=1e9+7;
void add(ll &x,ll y){
	x+=y;
	x%=mod;
}
ll dp[253][60][253];
int main(){
	int N,X;
	string s;
	cin>>N>>X>>s;
	dp[0][0][0]=1;
	rep(i,N){
		rep(j,60){
			rep(k,X+1){
				if(dp[i][j][k]==0) continue;
				if(k==X){
					add(dp[i+1][j][k],dp[i][j][k]*(s[i]=='?'?10:1));
					continue;
				}
				if(j%2==0){
					if((s[i]=='2'||s[i]=='?')){
						add(dp[i+1][j+1][k],dp[i][j][k]);
						if(s[i]=='?'){
							add(dp[i+1][0][k],dp[i][j][k]*9);
						}
					}else{
						add(dp[i+1][0][k],dp[i][j][k]);
					}
				}else{
					if((s[i]=='5'||s[i]=='?')){
						add(dp[i+1][j+1][min(X,k+(j+1)/2)],dp[i][j][k]);
						if(s[i]=='?'){
							add(dp[i+1][0][k],dp[i][j][k]*8);
							add(dp[i+1][1][k],dp[i][j][k]);
						}
					}else{
						if(s[i]=='2') add(dp[i+1][1][k],dp[i][j][k]);
						else add(dp[i+1][0][k],dp[i][j][k]);
					}
				}
			}
		}
	}
	ll ans=0;
	rep(j,60) add(ans,dp[N][j][X]);
	cout<<ans<<endl;
}

Submission Info

Submission Time
Task A - ニコニコ文字列2
User sigma425
Language C++ (G++ 4.6.4)
Score 20
Code Size 1507 Byte
Status AC
Exec Time 150 ms
Memory 22180 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 20 / 20
Status
AC × 2
AC × 22
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
All subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt
Case Name Status Exec Time Memory
sample_01.txt AC 24 ms 740 KB
sample_02.txt AC 23 ms 1056 KB
subtask1_01.txt AC 22 ms 924 KB
subtask1_02.txt AC 24 ms 792 KB
subtask1_03.txt AC 23 ms 748 KB
subtask1_04.txt AC 22 ms 800 KB
subtask1_05.txt AC 41 ms 2420 KB
subtask1_06.txt AC 37 ms 1828 KB
subtask1_07.txt AC 41 ms 4640 KB
subtask1_08.txt AC 41 ms 4636 KB
subtask1_09.txt AC 35 ms 3104 KB
subtask1_10.txt AC 29 ms 2016 KB
subtask1_11.txt AC 49 ms 3100 KB
subtask1_12.txt AC 51 ms 2212 KB
subtask1_13.txt AC 53 ms 4900 KB
subtask1_14.txt AC 55 ms 2856 KB
subtask1_15.txt AC 86 ms 19744 KB
subtask1_16.txt AC 89 ms 19244 KB
subtask1_17.txt AC 150 ms 22180 KB
subtask1_18.txt AC 52 ms 1704 KB
subtask1_19.txt AC 136 ms 22180 KB
subtask1_20.txt AC 91 ms 19036 KB
subtask1_21.txt AC 44 ms 1808 KB
subtask1_22.txt AC 46 ms 1696 KB