Cod sursa(job #575398)

Utilizator Robert29FMI Tilica Robert Robert29 Data 8 aprilie 2011 11:46:41
Problema Fractal Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<fstream>
using namespace std;
ifstream fi("fractal.in");
ofstream fo("fractal.out");
int k,x,y,i,p,sol,ok,xx;
void op(){
	p/=2;
	--k;
	ok=0;
}
int main() {
	fi>>k>>x>>y;
	
	for(i=1,p=1;i<=k;++i,p*=2);
	p/=2;
	xx=1;
	while(k){
		ok=1;
		if(x<=p&&y<=p&&ok){
			int aux=x;
			x=p-y;
			y=aux;
			sol+=p*p*xx;
			xx*=-1;
			op();
		}
		if(x<=p&&y>p&&ok){
			sol+=xx*p*p;
			y-=p;
			op();
		}
		if(x>p&&y<=p&&ok){
			sol+=xx*4*p*p;
			xx*=-1;
			x-=p;
			int aux=x;
			x=y;
			y=p-aux;
			op();
		}
		if(x>p&&y>p&&ok){
			sol+=2*xx*p*p;
			x-=p;
			y-=p;
			
			op();
		}
	}
	
	fo<<sol;
	
	
	fo.close();
	fi.close();
	return 0;
}