Pagini recente » Cod sursa (job #674884) | Cod sursa (job #1851001) | Cod sursa (job #451802) | Cod sursa (job #2672636) | Cod sursa (job #2120618)
#include<fstream>
#include<iostream>
using namespace std;
ifstream fin("fractal.in");
ofstream fout("fractal.out");
int k,l,c,r;
void ve(int k,int l,int c)
{
int p,fl,fc;
if(k==1)
{
if(l==2&&c==1)
r++;
if(l==2&&c==2)
r+=2;
if(l==1&&c==2)
r+=3;
return;
}
if(l<=(1<<(k-1))&&c<=(1<<(k-1)))
{
ve(k-1,c,l);
return;
}
if(l>(1<<(k-1))&&c<=(1<<(k-1)))
{
r+=(1<<k);
ve(k-1,l-(1<<(k-1)),c);
return;
}
if(l>(1<<(k-1))&&c>(1<<(k-1)))
{
r+=(1<<(k+1));
ve(k-1,l-(1<<(k-1)),c-(1<<(k-1)));
return;
}
if(l<=(1<<(k-1))&&c>(1<<(k-1)))
{
r+=(1<<k)+(1<<(k+1));
c-=(1<<(k-1));
p=(1<<(k-1));
fl=l;
fc=c;
l=p-fc+1;
c=p-fl+1;
ve(k-1,l,c);
}
}
int main()
{
fin>>k>>c>>l;
ve(k,l,c);
fout<<r;
}