Cod sursa(job #1235391)

Utilizator Marius7122FMI Ciltea Marian Marius7122 Data 29 septembrie 2014 18:48:40
Problema A+B Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <stdio.h>
int n,x,y,l,i,mut,mi,mj;
bool ok=1;
struct point
{
    short x;
    short y;
};
void decide(int mut)
{
    if(mut==1)
    {
        mi=-1;
        mj=0;
    }
    else if(mut==2)
    {
        mj=1;
        mi=0;
    }
    else if(mut==3)
    {
        mi=1;
        mj=0;
    }
    else
    {
        mj=-1;
        mi=0;
    }
}
int main()
{
    FILE*f1,*f2;
    f1=fopen("zona.in","r");
    f2=fopen("zona.out","w");
    fscanf(f1,"%d %d %d %d",&x,&y,&n,&l);
    point mutari[l];
    fscanf(f1,"%d",&mut);
    decide(mut);
    mutari[0].x=x+mi;
    mutari[0].y=y+mj;
    for(i=1;i<n;i++)
    {
        fscanf(f1,"%d",&mut);
        decide(mut);
        mutari[i].x=mutari[i-1].x+mi;
        mutari[i].y=mutari[i-1].y+mj;
    }
    i=0;
    while(ok)
    {
        if(mutari[i].x==mutari[n-1].x)
            if(mutari[i].y==mutari[n-1].y)
            {
                ok=0;
                fprintf(f2,"%d\n",l-i-1);
            }
        i++;
    }
    return 0;
}