Cod sursa(job #434284)

Utilizator miculprogramatorA Cosmina - vechi miculprogramator Data 5 aprilie 2010 16:12:32
Problema Gropi Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <stdio.h>

int a[3][20000000];
int c, n, m;
int i, j, k, p;
int p1, p2, sf1, sf2;
int gropi, nr;
int c1, c2;

int main()
{
	FILE *f = fopen ("gropi.in","r");
	FILE *g = fopen ("gropi.out","w");
	fscanf (f,"%d %d", &c, &n);
	for (i=1; i<=n; ++i)
	{
		fscanf (f,"%d %d", &j, &k);
		a[j][k] = 1;
	}
	fscanf (f,"%d", &m);
	
	
	for (p=1; p<=m; ++p)
	{
		gropi = 1;
		fscanf (f,"%d %d %d %d", &p1, &p2, &sf1, &sf2);
		if (p2 < sf2)
		{
			c1 = p1;
			c2 = p2;
		}
		else
		{
			c1 = sf1;
			c2 = sf2;
			sf1 = p1;
			sf2 = p2;
		}
		while (c2 < sf2)
		{
			if (a[c1][c2+1] == 0)
			{
				gropi ++;
				c2 ++;
			}
			else 
			{
				gropi ++;
				c1 ++;
			}
			if (c2 == sf2)
				if (c1 + 1 == sf1 || c1 - 1 == sf1)
				{
					gropi ++;
					break;
				}
		}
		fprintf (g,"%d\n", gropi);
	}
	
	fclose(g);
	fclose(f);
	return 0;
}