Submission #337867
Source Code Expand
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <cstring>
#include <map>
#include <cmath>
using namespace std;
int N,X;
string s;
int dp[300][300][300][2];
int dfs(int x,int n,int m,int a){
n = min(255,n);
m = min(255,m);
if( dp[x][n][m][a] != -1) return dp[x][n][m][a];
if( x == s.size() ) return n >= X;
vector<int> p;
if( s[x] == '?' ) for(int i = 0 ; i < 10 ; i++) p.push_back(i);
else p.push_back(s[x]-'0');
int ans = 0;
for(int i = 0 ; i < p.size() ; i++){
int t = p[i];
if( a == 0 && t == 2 ){
ans += dfs(x+1,n,m,1);
}else if( a == 1 && t == 5 ){
ans += dfs(x+1,n+m+1,m+1,0);
}else if( t == 2 ){
ans += dfs(x+1,n,0,1);
}else{
ans += dfs(x+1,n,0,0);
}
ans %= 1000000007;
}
return dp[x][n][m][a] = ans % 1000000007;
}
int main(){
memset(dp,-1,sizeof(dp));
cin >> N >> X;
cin >> s;
cout << dfs(0,0,0,0) << endl;
}
Submission Info
Submission Time |
|
Task |
A - ニコニコ文字列2 |
User |
kyuridenamida |
Language |
C++ (G++ 4.6.4) |
Score |
20 |
Code Size |
947 Byte |
Status |
AC |
Exec Time |
1374 ms |
Memory |
211756 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
20 / 20 |
Status |
|
|
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 |
366 ms |
211616 KB |
sample_02.txt |
AC |
356 ms |
211620 KB |
subtask1_01.txt |
AC |
355 ms |
211700 KB |
subtask1_02.txt |
AC |
348 ms |
211680 KB |
subtask1_03.txt |
AC |
380 ms |
211620 KB |
subtask1_04.txt |
AC |
362 ms |
211620 KB |
subtask1_05.txt |
AC |
364 ms |
211756 KB |
subtask1_06.txt |
AC |
337 ms |
211700 KB |
subtask1_07.txt |
AC |
396 ms |
211680 KB |
subtask1_08.txt |
AC |
449 ms |
211748 KB |
subtask1_09.txt |
AC |
397 ms |
211624 KB |
subtask1_10.txt |
AC |
370 ms |
211612 KB |
subtask1_11.txt |
AC |
367 ms |
211748 KB |
subtask1_12.txt |
AC |
368 ms |
211748 KB |
subtask1_13.txt |
AC |
387 ms |
211740 KB |
subtask1_14.txt |
AC |
375 ms |
211744 KB |
subtask1_15.txt |
AC |
418 ms |
211744 KB |
subtask1_16.txt |
AC |
408 ms |
211676 KB |
subtask1_17.txt |
AC |
1374 ms |
211740 KB |
subtask1_18.txt |
AC |
358 ms |
211740 KB |
subtask1_19.txt |
AC |
1073 ms |
211752 KB |
subtask1_20.txt |
AC |
404 ms |
211756 KB |
subtask1_21.txt |
AC |
1369 ms |
211752 KB |
subtask1_22.txt |
AC |
389 ms |
211676 KB |