Pagini recente » Cod sursa (job #123525) | Cod sursa (job #2600946) | Cod sursa (job #2620849) | Cod sursa (job #1561685) | Cod sursa (job #1309066)
#include <fstream>
using namespace std;
long s, two_pow_k;
void fractal(long x, long y)
{
if(two_pow_k==1) return;
two_pow_k/=2;
if(x<=two_pow_k)
{
if(y<=two_pow_k)
{
fractal(y, x);
}
else
{
s+=two_pow_k*two_pow_k;
fractal(x, y-two_pow_k);
}
}
else
{
if(y<=two_pow_k)
{
s+=two_pow_k*two_pow_k*3;
fractal(two_pow_k+1-y, 2*two_pow_k+1-x);
}
else
{
s+=two_pow_k*two_pow_k*2;
fractal(x-two_pow_k, y-two_pow_k);
}
}
}
int main()
{
ifstream in("fractal.in");
ofstream out("fractal.out");
long k, x, y;
in>>k>>x>>y;
two_pow_k=1;
two_pow_k<<=k;
fractal(x, y);
out<<s<<'\n';
in.close(); out.close();
return 0;
}