Cod sursa(job #651470)

Utilizator okros_alexandruOkros Alexandru okros_alexandru Data 20 decembrie 2011 16:06:49
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<fstream>
using namespace std;
int n,x,y,cadr,tmp;
long long sum;
void rec(int k,int l) {
	if(k<n)
		rec(k+1,2*l);
	if(x<=l/2&&y<=l/2)
		cadr=1;
	else
	if(x>l/2&&y<=l/2)
		cadr=2;
	else
	if(x<=l/2&&y>l/2)
		cadr=4;
	else
	if(x>l/2&&y>l/2)
		cadr=3;
	sum+=1LL*(cadr-1)*l*l/4;
	if(cadr==1)
		swap(x,y);
	else
	if(cadr==2)
		x-=l/2;
	else
	if(cadr==4) {
		tmp=x;
		x=l+1-y;
		y=l/2+1-tmp;
		}
	else
	if(cadr==3) {
		x-=l/2;
		y-=l/2;
		}
}
int main() {
	ifstream in("fractal.in");
	ofstream out("fractal.out");
	in>>n>>x>>y;
	swap(x,y);
	rec(1,2);
	out<<sum<<'\n';
	in.close();
	out.close();
	return 0;
}