Cod sursa(job #651372)

Utilizator okros_alexandruOkros Alexandru okros_alexandru Data 20 decembrie 2011 09:47:42
Problema Fractal Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<fstream>
using namespace std;
int n,x,y,cadr;
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);
		y=l/2+1-y;
		}
	else
	if(cadr==2)
		x-=l/2;
	else
	if(cadr==4) {
		swap(x,y);
		x=l+1-x;
		}
	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+cadr)<<'\n';
	in.close();
	out.close();
	return 0;
}