Pagini recente » Cod sursa (job #2183711) | Cod sursa (job #2195961) | Cod sursa (job #325563) | Cod sursa (job #556187) | Cod sursa (job #2316469)
#include <bits/stdc++.h>
using namespace std;
ifstream f("fractal.in");
ofstream g("fractal.out");
int k,x,y;
long long ans,i,j,a[30],p2[30];
int main()
{
f>>k>>x>>y;
swap(x,y);
for(i=1;i<=k;i++)
a[i]=a[i-1]*4+3;
p2[0]=1;
for(i=1;i<=k;i++)
p2[i]=p2[i-1]*2;
i=x,j=y;
for(;k;k--)
{
//cout<<i<<' '<<j<<" : "<<ans<<'\n';
if(i<=p2[k-1])
if(j<=p2[k-1])
swap(i,j);
else
{
ans+=3*a[k-1]+3;
long long newj=p2[k-1]+1-i;
i=p2[k]+1-j;
j=newj;
}
else
if(j<=p2[k-1])
ans+= a[k-1]+1,i-=p2[k-1];
else
ans+=2*a[k-1]+2,i-=p2[k-1],j-=p2[k-1];
}
g<<ans;
return 0;
}