Pagini recente » Cod sursa (job #2979454) | DeehoroEjkoli | Brasov | Cod sursa (job #553514) | Cod sursa (job #244844)
Cod sursa(job #244844)
#include<stdio.h>
int aux,k,x,y,sol,a[3][3]={{0,0,0},{0,0,3},{0,1,2}};
void parc(int k,int x,int y){
if(k == 2){
sol+=a[x][y];
return ;
}
if(x<=k>>1){
//prima jumatate
if(y<=k>>1){
//patratu 1;
//parc((k>>1),y,((k>>1)-x+1) );
aux=x;
x=y;
y=((k>>1)-aux+1);
y=(k>>1)-y+1;
parc((k>>1),x,y);
}
else{
//patratu 2;
sol+=3*((k>>1)*(k>>1));
y-=(k>>1);
aux=y;
y=x;
x=((k>>1) - aux +1);
y=(k>>1)-y+1;
parc((k>>1),x,y);
}
}
else{
//a doua juamtate
if(y<=k>>1){
//patratu 3; e bine
sol+=((k>>1)*(k>>1));
parc(k>>1,(x-(k>>1)),y);
}
else{
//patratu 4;
sol+=2*((k>>1)*(k>>1));
parc( k>>1,(x-(k>>1)),(y-(k>>1)) );
}
}
}
int main(){
FILE *f=fopen("fractal.in","r");
fscanf(f,"%d %d %d",&k,&y,&x);
fclose(f);
parc((1<<k),x,y);
FILE *g=fopen("fractal.out","w");
fprintf(g,"%d",sol);
fclose(g);
return 0;
}