Pagini recente » preONI 2005 runda #1 - solutii | Cod sursa (job #2802196) | Cod sursa (job #746112) | Cod sursa (job #2812960) | Cod sursa (job #617263)
Cod sursa(job #617263)
#include<fstream>
using namespace std;
int det(int pas, int x, int y, int tr)
{
if(x==1&&y==1)
return 0;
if(x<=(1<<(pas-1))&&y<=(1<<(pas-1)))
return det(pas-1,y,x,tr/4);
if(y<=(1<<(pas-1)))
return tr/4+det(pas-1,x-(1<<(pas-1)),y,tr/4);
if(x>(1<<(pas-1))&&y>(1<<(pas-1)))
return tr/2+det(pas-1,x-(1<<(pas-1)),y-(1<<(pas-1)),tr/4);
return tr/4*3+det(pas-1,(1<<(pas-1))-(y-(1<<(pas-1)))+1,(1<<(pas-1))-x+1,tr/4);
}
int main()
{
ifstream q("fractal.in");
ofstream w("fractal.out");
int n,y,x;
q>>n>>y>>x;
w<<det(n,x,y,1<<2*n);
return 0;
}