Mai intai trebuie sa te autentifici.
Cod sursa(job #656201)
Utilizator | Data | 4 ianuarie 2012 12:24:37 | |
---|---|---|---|
Problema | Fractii | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.54 kb |
#include<stdio.h>
#include<math.h>
long int suma=0;
void rec(int k,int x,int y){
if (k>0){
int l=(1<<(k-1));
if (x<=l && y<=l) { rec(k-1,y,x); }else
if (x<=l && y>l) { suma+=l*l; rec(k-1,x,y-l); }else
if (x>l && y>l) { suma+=2*l*l; rec(k-1,x-l,y-l); }else
if (x>l && y<=l) { suma+=3*l*l; rec(k-1,l-y+1,2*l-x+1); }
}
}
int main(){
FILE *fi,*fo;
int k,x,y;
fi=fopen("fractal.in","r"); fo=fopen("fractal.out","w");
fscanf(fi,"%i%i%i",&k,&x,&y);
rec(k,x,y);
fprintf(fo,"%li",suma);
fclose(fi); fclose(fo);
return 0;
}