Cod sursa(job #2647850)

Utilizator eugen5092eugen barbulescu eugen5092 Data 6 septembrie 2020 18:27:27
Problema Nunta Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <bits/stdc++.h>
using namespace std;

ifstream ci("nunta.in");
ofstream cou("nunta.out");

long long n;

long long calc_comb(long long b,long long a){
    //comb de b luate cate a
    long long rez=1;
    long long a_b;
    long long ra=1,rb_a=1;
    long long b_a=b-a;
    for(long long i=2;i<=b;i++){
        rez*=i;
        while(rez%ra==0&&ra<=a){
            rez/=ra;
            ra++;
        }
        while(rez%rb_a==0&&rb_a<=b_a){
            rez/=rb_a;
            rb_a++;
        }
    }
    return rez;

}

void rez(){
    long long k,p,sm=0,nrgr,rez=0;
    if(n%2==0){
        k=0;
        while(k<=n){
            nrgr=(n-k)/2;
            rez+=calc_comb(nrgr+k,nrgr);
            k+=2;
        }

    }else{
        k=1;
        while(k<=n){

            nrgr=(n-k)/2;
            rez+=calc_comb(nrgr+k,nrgr);
            //cout<<k<<" "<<nrgr<<" "<<nrgr+k<<" "<<calc_comb(nrgr+k,nrgr)<<" "<<n<<"\n";
            k+=2;
        }
    }
    cou<<rez;
}

int main()
{
    ci>>n;

    rez();
    return 0;
}