
#include <bits/stdc++.h>
using namespace std;
int n,r;
struct _tuple{
long long k1;
long long k2;
};
_tuple table[105][105];
void input(){
//freopen("in.txt","r",stdin);
scanf("%d %d",&n,&r);
}
int main(){
input();
for(int i=0;i<=n;i++){
for(int j=0;j<=i;j++){
if(j==0||j==i){
table[i][j].k1=0;
table[i][j].k2=1;
}else{
table[i][j].k1=table[i-1][j-1].k1+table[i-1][j].k1+(table[i-1][j-1].k2+table[i-1][j].k2)/100000000000000000;
table[i][j].k2=(table[i-1][j-1].k2+table[i-1][j].k2)%100000000000000000;
//printf("%lld %lld %lld %lld\n",table[i-1][j-1].k1,table[i-1][j].k1,table[i-1][j-1].k2,table[i-1][j].k2);
}
}
}
if(table[n][r].k1==0){
printf("%lld",table[n][r].k2);
}else{
printf("%lld%lld",table[n][r].k1,table[n][r].k2);
}
/*for(int i=1;i<=62;i++){
d*=2;
//printf("%lld",d);
}
d+=d-1;
printf("%lld",d);*/
}
#include <bits/stdc++.h>
using namespace std;
int n,r;
struct _tuple{
long long k1;
long long k2;
};
_tuple table[105][105];
void input(){
//freopen("in.txt","r",stdin);
scanf("%d %d",&n,&r);
}
int main(){
input();
for(int i=0;i<=n;i++){
for(int j=0;j<=i;j++){
if(j==0||j==i){
table[i][j].k1=0;
table[i][j].k2=1;
}else{
table[i][j].k1=table[i-1][j-1].k1+table[i-1][j].k1+(table[i-1][j-1].k2+table[i-1][j].k2)/100000000000000000;
table[i][j].k2=(table[i-1][j-1].k2+table[i-1][j].k2)%100000000000000000;
//printf("%lld %lld %lld %lld\n",table[i-1][j-1].k1,table[i-1][j].k1,table[i-1][j-1].k2,table[i-1][j].k2);
}
}
}
if(table[n][r].k1==0){
printf("%lld",table[n][r].k2);
}else{
printf("%lld%lld",table[n][r].k1,table[n][r].k2);
}
/*for(int i=1;i<=62;i++){
d*=2;
//printf("%lld",d);
}
d+=d-1;
printf("%lld",d);*/
}
Comments
Post a Comment