Advertisement
Saleh127

UVA 10912 / DP

Mar 15th, 2022
1,329
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.93 KB | None | 0 0
  1. /***
  2.  created: 2022-03-16-05.23.18
  3. ***/
  4.  
  5. #include <bits/stdc++.h>
  6. using namespace std;
  7. #define ll long long
  8. #define test int tt; cin>>tt; for(int cs=1;cs<=tt;cs++)
  9. #define get_lost_idiot return 0
  10. #define nl '\n'
  11.  
  12. ll sum,n;
  13.  
  14. ll dp[29][160][460];
  15.  
  16. ll solve(ll in,char c,ll s)
  17. {
  18.     if(in==n) return s==sum;
  19.  
  20.     if(s>sum) return 0;
  21.  
  22.     if(dp[in][c][s]!=-1) return dp[in][c][s];
  23.  
  24.     ll ans=0;
  25.  
  26.     for(char cc=c+1;cc<='z';cc++)
  27.     {
  28.         ans+=solve(in+1,cc,s+(cc-'a')+1);
  29.     }
  30.  
  31.     return dp[in][c][s]=ans;
  32. }
  33.  
  34. int main()
  35. {
  36.     ios_base::sync_with_stdio(0);
  37.     cin.tie(0);
  38.     cout.tie(0);
  39.  
  40.     ll tc=1;
  41.  
  42.     while(cin>>n>>sum && (sum+n))
  43.     {
  44.         cout<<"Case "<<tc++<<": ";
  45.  
  46.         ll x=(n*(n+1))/2;
  47.  
  48.         if(n>26 || sum>351 || x>sum) cout<<0<<nl;
  49.         else
  50.         {
  51.             memset(dp,-1,sizeof dp);
  52.  
  53.             cout<<solve(0,96,0)<<nl;
  54.         }
  55.     }
  56.  
  57.     get_lost_idiot;
  58. }
  59.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement