Cod sursa(job #3260151)

Utilizator Luca245Platon Luca Luca245 Data 30 noiembrie 2024 12:44:52
Problema Nunta Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <iostream>

using namespace std;
typedef int Huge[1000];
Huge H;
void Mult(Huge H, int a){
    int T=0;
    for(int i=1;i<=H[0];i++){
        H[i] = H[i]*a+T;
        T=H[i]/10;
        H[i] = H[i]%10;
    }
    while(T>0){
        H[++H[0]]=T%10;
        T=T/10;
    }
}
void Atrib_Huge(Huge H, int a){
    H[0]=0;
    while(a){
        H[++H[0]]=a%10;
        a/=10;
    }
}
void Divide_Huge(Huge H, int a){
    int R=0;
    int i;
    for(int i=H[0]; i>0; i--){
        H[i] =(R*10+H[i]);
        R=H[i]%a;
        H[i]=H[i]/a;
        }

    i=H[0];
    while(!H[i]){
       H[0]--;i--;
    }
}
void Print_Huge(Huge H){
    for(int i=H[0]; i>=1;i--){
        cout<<H[i];
    }

}
void Comb_Huge(Huge H,int n, int k){
    Atrib_Huge(H, 1);
    for(int i=1; i<=k; i++){
        Mult(H, n-i+1);
        Divide_Huge(H,i);
    }
}

int main()
{   int n,k;
    cin>>n>>k;
    Huge H;
    Comb_Huge(H,n+k-1,k-1);
    Print_Huge(H);
}