Cod sursa(job #2052374)

Utilizator gruhtenZinnenberg Gruhten gruhten Data 30 octombrie 2017 15:33:31
Problema Potrivirea sirurilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.56 kb
#include <fstream>
#define DIM 8
using namespace std;

long long l[DIM],L[DIM],x1[DIM],x2[DIM],y1[DIM],y2[DIM];


int main()
{
   ifstream f("drept.in");
   ofstream g("drept.out");

   long long  i=1,j,n,k,x,y,solutie=0;
   long long  dir=-1;

   f>>k>>x>>y;

l[1]=1;
L[1]=k;
i=1;
x1[1]=0;
x2[1]=k;
y1[1]=0;
y2[1]=1;
if(x1[i]<=x and x<=x2[i] and y1[i]<=y and y<=y2[i])
  solutie=1;
else
{
    while(solutie==0)
    {
        dir=(dir+1)%4;
        ++i;
        l[i]=L[i-1]+l[i-2];
        L[i]=k*l[i];
        /************************************/
        if(dir==0) //construim pe latura din N  (II)
        {
            x1[i]=x1[i-2];
            x2[i]=x2[i-1];
            y1[i]=y2[i-1];
            y2[i]=y1[i]+L[i];
        }
        /************************************/
        else if(dir==1) //construim pe latura din V (III)
        {
            x1[i]=x1[i-1]-L[i];
            x2[i]=x1[i-1];
            y1[i]=y1[i-2];
            y2[i]=y2[i-1];
        }
        else if(dir==2) //construim pe latura din S  (IV)
        {
            x1[i]=x1[i-1];
            x2[i]=x2[i-2];
            y1[i]=y1[i-1]-L[i];
            y2[i]=y1[i-1];
        }
        else if(dir==3) //construim pe latura din E (V)
        {
            x1[i]=x2[i-1];
            x2[i]=x1[i]+L[i];
            y1[i]=y1[i-1];
            y2[i]=y2[i-2];
        }

        if(x1[i]<=x and x<=x2[i])

          if(y1[i]<=y and y<=y2[i])
          {
              solutie=i;
          }

    }
}

g<<solutie<<'\n';

    return 0;
}