Submission #826012

#TimeUsernameProblemLanguageResultExecution timeMemory
826012Darren0724Bowling (BOI15_bow)C++17
26 / 100
7 ms328 KiB
#include<bits/stdc++.h> using namespace std; #define int long long const int K=300; void solve(){ int n;cin>>n; string s;cin>>s; vector<int> v(n+1); for(int i=1;i<=n;i++){ cin>>v[i]; } vector<int> dp(301),dp1(301); dp[0]=1; for(int i=1;i<=n;i++){ int l1=0,r1=9; int l2=0,r2=9; if(s[i*2-2]>='0'&&s[i*2-2]<='9'){ l1=s[i*2-2]-'0'; r1=s[i*2-2]-'0'; } if(s[i*2-1]>='0'&&s[i*2-1]<='9'){ l2=s[i*2-1]-'0'; r2=s[i*2-1]-'0'; } int l3=0,r3=300; if(v[i]!=-1){ l3=v[i],r3=v[i]; } for(int j=l3;j<=r3;j++){ for(int j1=l1;j1<=r1;j1++){ for(int j2=l2;j2<=r2;j2++){ if(j1+j2>9){ continue; } if(j>=j1+j2){ dp1[j]+=dp[j-j1-j2]; } } } } swap(dp,dp1); dp1.assign(K+1,0); } int ans=0; for(int i=0;i<=K;i++){ ans+=dp[i]; } cout<<ans<<endl; } signed main(){ ios_base::sync_with_stdio(false); cin.tie(0); int t;cin>>t; while(t--){ solve(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...