Cod sursa(job #638529)
| Utilizator | Data | 20 noiembrie 2011 22:05:05 | |
|---|---|---|---|
| Problema | Ciuperci | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.46 kb |
#include <cstdio>
FILE *f,*g;
long long n;
int q,i;
long long sol(long long n) {
if (n==1)
return 1;
if (n==2)
return 2;
if ( (n-1)%2==0)
return ((long long)sol( (n-1)/2)*sol( (n-1)/2));
else
return ((long long)2*sol((n-1)/2)*sol( (n-1)/2+1));
}
int main() {
f=fopen("ciuperci.in","r");
g=fopen("ciuperci.out","w");
fscanf(f,"%d",&q);
for (i=1;i<=q;i++) {
fscanf(f,"%lld",&n);
fprintf(g,"%lld\n",sol(n));
}
fclose(g);
return 0;
}