Pagini recente » Cod sursa (job #535969) | Cod sursa (job #657181) | Cod sursa (job #1886247) | Cod sursa (job #893238) | Cod sursa (job #2213927)
#include<fstream>
using namespace std;
ifstream cin("fractal.in");
ofstream cout("fractal.out");
int k,x,y,ord[20],p[20];
int fractal(int k,int x,int y)
{
if(k==0) return 0;
if(x<=p[k-1])
{
if(y<=p[k-1]) return fractal(k-1,y,x);
else {y-=p[k-1]; return 3+3*ord[k-1]+fractal(k-1,p[k-1]-y+1,p[k-1]-x+1);}
}
else
{
x-=p[k-1];
if(y<=p[k-1]) return 1+ord[k-1]+fractal(k-1,x,y);
else {y-=p[k-1]; return 2+2*ord[k-1]+fractal(k-1,x,y);}
}
}
int main()
{
cin>>k>>y>>x;
ord[1]=3; p[0]=1; p[1]=2;
for(int i=2;i<=15;i++)
{
ord[i]=4*ord[i-1]+3;
p[i]=p[i-1]*2;
}
cout<<fractal(k,x,y);
}