Combination

 

#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