#include<bits/stdc++.h>
#define sf2(a,b) scanf("%lld%lld",&a,&b)
using namespace std;
bool vis[28][28][355];
long long dp[28][28][355];
long long l,s;
long long callkorlam(long long pos,long long len,long long tot)
{
if(l==len)
{
if(tot==0)
return 1;
else
return 0;
}
if(tot==0)
{
if(l==len)
return 1;
else
return 0;
}
if(pos>26)
{
if(len==l&&tot==0)
{
return 1;
}
else
return 0;
}
long long fst=0,scnd=0;
if(vis[pos][len][tot]!=false)
{
return dp[pos][len][tot];
}
if(tot-pos>=0)
{
fst=callkorlam(pos+1,len+1,tot-pos);
}
scnd=callkorlam(pos+1,len,tot);
vis[pos][len][tot]=true;
return dp[pos][len][tot]=fst+scnd;
}
main()
{
long long cs=1;
while(cin>>l>>s)
{
long long rs=0;
if(l==0&&s==0)
break;
memset(vis,false,sizeof(vis));
if(l>26 || s>351)
{
rs=0;
}
else
{
rs=callkorlam(1,0,s);
}
printf("Case %lld: %lld\n",cs++,rs);
}
}
#define sf2(a,b) scanf("%lld%lld",&a,&b)
using namespace std;
bool vis[28][28][355];
long long dp[28][28][355];
long long l,s;
long long callkorlam(long long pos,long long len,long long tot)
{
if(l==len)
{
if(tot==0)
return 1;
else
return 0;
}
if(tot==0)
{
if(l==len)
return 1;
else
return 0;
}
if(pos>26)
{
if(len==l&&tot==0)
{
return 1;
}
else
return 0;
}
long long fst=0,scnd=0;
if(vis[pos][len][tot]!=false)
{
return dp[pos][len][tot];
}
if(tot-pos>=0)
{
fst=callkorlam(pos+1,len+1,tot-pos);
}
scnd=callkorlam(pos+1,len,tot);
vis[pos][len][tot]=true;
return dp[pos][len][tot]=fst+scnd;
}
main()
{
long long cs=1;
while(cin>>l>>s)
{
long long rs=0;
if(l==0&&s==0)
break;
memset(vis,false,sizeof(vis));
if(l>26 || s>351)
{
rs=0;
}
else
{
rs=callkorlam(1,0,s);
}
printf("Case %lld: %lld\n",cs++,rs);
}
}
কোন মন্তব্য নেই:
একটি মন্তব্য পোস্ট করুন