Cod sursa(job #197606)

Utilizator ChallengeMurtaza Alexandru Challenge Data 5 iulie 2008 11:58:06
Problema Gropi Scor 0
Compilator cpp Status done
Runda Junior Challenge 2008 Marime 0.99 kb
#include <stdio.h>

long int i,x1,y1,x2,y2,m,n,c,tr,s,l;
int mat[200000][2];
FILE *f,*g;

int main()
{
f=fopen("gropi.in","r");
fscanf(f,"%ld %ld\n",&c,&n);
l=-1;
for(i=0;i<n;i++)
{
	fscanf(f,"%ld %ld\n",&x1,&y1);
   mat[x1-1][y1-1] = 1;
}
fscanf(f,"%ld\n",&m);
g = fopen("gropi.out","w");
for(i=0;i<m;i++)
{
 	fscanf(f,"%ld %ld %ld %ld\n",&y1,&x1,&y2,&x2);
   x1--;y1--;x2--;y2--;
   tr=1;
   if(x1>x2)
   {
   	s=-1;
   }
   else
   {
   	s=1;
   }
   while(x1 != x2 || y1 != y2)
   {
   	if(x1 != x2)
      {
      	tr++;
      	if(mat[x1+s][y1]==0)
         {
         	x1+=s;
         }
         else
         {
         	if(y1 == 1)
            {
            	y1 = 0;
            }
            else
            {
            	y1 = 1;
            }
         }
      }
      else
      {
      	if(y1 != y2)
         {
         	y1=y2;
            tr++;
         }
      }
   }
   fprintf(g,"%ld\n",tr);
}
fclose(g);
fclose(f);
return 0;
}