Cod sursa(job #1295579)

Utilizator robertstrecheStreche Robert robertstreche Data 19 decembrie 2014 19:54:24
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.58 kb
#include <fstream>

#define lmax 1024

using namespace std;

ifstream f("balanta.in");
ofstream g("balanta.out");

int n,m,i,j,nr1,nr2,val1,val2,k,rez;
int a[lmax/2],b[lmax/2],mic[lmax],mare[lmax];

int main()
{
   f>>n>>m;

   for (i=1;i<=n;i++)
    mic[i]=1,
    mare[i]=1;

   for (i=1;i<=m;i++)
    {
        f>>k;

        for (j=1;j<=k;j++)
         f>>a[j];

        for (j=1;j<=k;j++)
         f>>b[j];

       f>>rez;

       if (rez==0)
         for (j=1;j<=k;j++)
          {
              mic[a[j]]=0;
              mic[b[j]]=0;
              mare[a[j]]=0;
              mare[b[j]]=0;
          }
       else
        if (rez==1)
         {
            for (j=1;j<=k;j++)
             mic[b[j]]++,
             mare[a[j]]++;

            for (j=1;j<=n;j++)
             if (mic[j])
              mic[j]--;

            for (j=1;j<=n;j++)
             if (mare[j])
              mare[j]--;
         }
        else
         {
             for (j=1;j<=k;j++)
              mic[a[j]]++,
              mare[b[j]]++;

            for (j=1;j<=n;j++)
             if (mic[j])
              mic[j]--;

            for (j=1;j<=n;j++)
             if (mare[j])
              mare[j]--;
         }
    }

    for (i=1;i<=n;i++)
     if (mic[i])
      {
          nr1++;
          val1=i;
      }
    for (i=1;i<=n;i++)
     if (mare[i])
      {
          nr2++;
          val2=i;
      }

    if (nr1+nr2==1)
      if (val1)
       g<<val1;
      else
       g<<val2;
    else
     g<<0;

   f.close();
   g.close();
}