Cod sursa(job #1081559)

Utilizator RaduGabriel2012Dinu Radu RaduGabriel2012 Data 13 ianuarie 2014 18:45:02
Problema Balanta Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("balanta.in");
ofstream g("balanta.out");
 int n,m,ok[1030],k,ok2[1030],a1[1030],a2[1030],keep[1030],keep2[1030],rel,is,n1,p1,n2,p2;
int main()
{  int i,j;
    f>>n>>m;
     for(i=1;i<=n;i++)
      {ok[i]=1; ok2[i]=1;}

   for(i=1;i<=m;i++)
   { f>>k;
      for(j=1;j<=k;j++)
       f>>a1[j];
      for(j=1;j<=k;j++)
       f>>a2[j];
    f>>rel;
     if (!rel)
      for(j=1;j<=k;j++)
       {ok[a1[j]]=0;
        ok[a2[j]]=0;}
      else
      { memset(keep,0,sizeof(keep));
        memset(keep2,0,sizeof(keep2));
         for(j=1;j<=k;j++)
          if (rel==1) {keep[a1[j]]=1; keep2[a2[j]]=1;}
           else {keep[a2[j]]=1; keep2[a1[j]]=1;}

         for(j=1;j<=n;j++)
          {if (!keep[j]) ok[j]=0;
           if (!keep2[j]) ok2[j]=0;
          }
      }
   }

    for(i=1;i<=n;i++)
     {if (ok[i]==1)
      {n1++; if(n1==1) p1=i;}
      if (ok2[i]==1)
      {n2++; if(n2==1) p2=i;}
     }

    if (n1==1 && n2!=1)
     g<<p1;
      else if (n1!=1 && n2==1) g<<p2;
       else if (n1==1 && n2==1 && p1==p2) g<<p1;
        else g<<"0";
    return 0;
}