Cod sursa(job #1880677)

Utilizator CodrinsahCotarlan Codrin Codrinsah Data 15 februarie 2017 21:04:35
Problema Fractal Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <fstream>
using namespace std;
ifstream fi ("fractal.in");
ofstream fo ("fractal.out");
long long cadran,k,x,y,sol,c1,c2,c3,c4;
int def_cad(long long ordin,long long l,long long c )
{
  ordin--;
  if (l<=(1<<ordin) and c<=(1<<ordin)) return c1;
  if (l>(1<<ordin) and c<=(1<<ordin)) return c2;
  if (l>(1<<ordin) and c>(1<<ordin)) return c3;
  if (l<=(1<<ordin) and c>(1<<ordin)) return c4;
}
void pozitionare()
{
  long long lg=(1<<k);
  int parte;
  if (cadran==1)
  {
    swap (c2,c4);
  }
  if (cadran==2)
  {
    sol=sol+(1<<(2*k));
    x=x-(1<<k);
  }
  if (cadran==3)
  {
    sol=sol+2*(1<<(2*k));
    x=x-(1<<k);
    y=y-(1<<k);
  }
  if (cadran==4)
  {
    sol=sol+3*(1<<(2*k));
    y=y-(1<<k);
    swap (c1,c3);
  }

}
int main()
{
    fi>>k>>y>>x;
    c1=1;
    c2=2;
    c3=3;
    c4=4;
    while (k>0)
    {
      cadran=def_cad(k,x,y);
      k--;
      pozitionare();
    }
    sol++;
    fo<<sol;
    return 0;
}