Cod sursa(job #378840)

Utilizator MciprianMMciprianM MciprianM Data 29 decembrie 2009 19:05:21
Problema Fractal Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<fstream>
using namespace std;

int solve(int n, int x, int y){
	if(n==1)
		if(x==1) return y;
		else if(y==1) return 4;
				else return 3;
	n--;
	if(x<=(1<<n)){
		if(y<=(1<<n))
			return (1<<n)*(1<<n)+1-solve(n, (1<<n)+1-y, x);
		return ((1<<n)*(1<<n)+solve(n, x, y-(1<<n)));
	}
	if(y<=(1<<n))
		return ((1<<(n+1))*(1<<(n+1))+1-solve(n, y, (1<<(n+1))+1-x));
	return (2*(1<<n)*(1<<n)+solve(n, x-(1<<(n+1)), y-(1<<(n+1))));
}
int main(){
	int K, x, y;
	ifstream f("fractal.in");
	f>>K>>x>>y;
	f.close();
	ofstream g("fractal.out");
	g<<(solve(K, x, y)-1)<<'\n';
	g.close();
	return 0;
}