Cod sursa(job #638310)

Utilizator tzipleatudTudor Tiplea tzipleatud Data 20 noiembrie 2011 20:12:39
Problema Ciuperci Scor 0
Compilator cpp Status done
Runda .com 2011 Marime 0.66 kb
#include <fstream>

using namespace std;

ifstream f("ciuperci.in");
ofstream g("ciuperci.out");

long long q,n,i,m=666013;

long long calcul(long long n) {
    long long lg2=0,dn=1,i;
    while (dn<=n) {
        dn*=2;lg2++;
    }
    dn/=2;lg2--;
    long long r,gr,s;
    r=n+1-dn;
    if (r==0) return 1;
    if (r%2==0) {
        r/=2;

    }
    long long a=1,b=1,c=1;
    for (i=1;i<=dn;i++) a*=i;
    for (i=1;i<=r;i++) b*=i;
    for (i=1;i<=dn-r;i++) c*=i;
    return a/(b*c);
}



int main () {
    f >> q;
    for (i=1;i<=q;i++) {
        f >> n;
        g << calcul(n) << '\n';
    }
    f.close();g.close();
    return 0;
}