Cod sursa(job #308330)

Utilizator andrici_cezarAndrici Cezar andrici_cezar Data 26 aprilie 2009 19:52:21
Problema Gropi Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<fstream.h>

long n,p,i,t,j,l,c,aux,d,m,h,b;
short a[3][500001];

int main()
{
ifstream f("gropi.in");
ofstream g("gropi.out");
f>>n>>p;
for (i=1;i<=p;i++)
    {
    f>>c>>b;
    a[c][b]=1;
    }
f>>m;
for (i=1;i<=m;i++)
    {
    f>>c>>b>>d>>h;
    t=0;
    if (b>h)
       {
       aux=b;
       b=h;
       h=aux;
       aux=c;
       c=d;
       d=aux;
       }
    do {
       if (b!=h+1 && a[c][b]!=1)
          {
          a[c][b]=2;
          b++;
          if(c!=d&&h+1==b) { a[d][b-1]=2;}
          }
       else if (b!=h+1&&a[c][b]==1)
            {
            if (c==1) c++;
            else c--;
            b--;
            a[c][b]=2;
            }
       }
    while (h+1!=b);
    for (j=1;j<=n;j++)
        {
        if (a[1][j]==2){t++;a[1][j]=0;}
        if (a[2][j]==2){t++;a[2][j]=0;}
        }
    g<<t<<'\n';
    }
g.close();
return 0;
}