Cod sursa(job #474321)

Utilizator andrey932Andrei andrey932 Data 3 august 2010 13:30:12
Problema Fractal Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream fin("fractal.in");
ofstream fout("fractal.out");
int i,c[20],k,x,y,rez;
/*
1 | 4
--|--
2 | 3

*/


void rezolva(int k) {
	if (k>=1) {
		int med=1<<k-1;
		if (x<=med&&y<=med) { //cadran 1
			rez+=0; cout<<k<<"  c1\n";
		}
		else if (x<=med&&y>med) { //cadran 2
			rez+=c[k]-3*c[k-1]; cout<<k<<"  c2\n";
		}
		else if (x>med&&y>med) { //cadran 3
			rez+=c[k]-2*c[k-1]; cout<<k<<"  c3\n";
		}
		else if (x>med&&y<=med) { //cadran 4
			rez+=c[k]-c[k-1]; cout<<k<<"  c4\n";
		}		
		rezolva(k-1);
	}
}


int main()
{
	c[0]=1;
	c[1]=3;
	for(i=2;i<=15;i++) {
		c[i]=4*c[i-1]+3;
		cout<<"c["<<i<<"]="<<c[i]<<"\n";
	}
	fin>>k>>x>>y;
	rezolva(k);
	fout<<rez++;
	fout.close();
	return 0;
}