Cod sursa(job #1978569)

Utilizator Eduard663676Ghiuzan Eduard Eduard663676 Data 8 mai 2017 10:31:10
Problema Fractal Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <iostream>
#include <fstream>
#include <math.h>
int x,y,nrpasi;
int v[5]={0,1,2,3,4};     // initializarea vectorului cu cadrane
int cadr(int k,int q){   // calculul cadranului
	if(x<=q/2)
		if(y<=q/2)
			return v[1];
		else
			return v[4];
	else
		if(y<=q/2)
			return v[2];
		else
			return v[3];
}
int main (){
	int k,q,aux,c;
	ifstream citire("fractal.in");
	citire>>k>>x>>y;
	citire.close();
	while(k>=1){
		q=pow(2,k);
		if(x>q)      // ajustarea coordonatei x
			x-=q;
		if(y>q)      // ajustarea coordonatei y
			y-=q;
		c=cadr(k,q);
		if(c==1){       // ajustarea cadranului I
			aux=v[2];
			v[2]=v[4];
			v[4]=aux;
		}
		if(c==4){      // ajustarea cadranului IV
			aux=v[1];
			v[1]=v[3];
			v[3]=aux;
		}
		k--;    // micsorarea ordinului
		nrpasi=nrpasi+((pow(2,2*k))*(c-1));     // calcularea numarului de pasi
	}
	ofstream afisare("fractal.out");
	afisare<<nrpasi;
	afisare.close();
}