Cod sursa(job #161643)

Utilizator luana_0105Fagarasan Luana luana_0105 Data 18 martie 2008 17:13:13
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.31 kb
#include<stdio.h>
#define nmax 1005

int a[nmax];
int in[nmax][nmax], tot, t[nmax];
int n,m;

void read()
{
      int i,j,aux,c,timp,nr;
      
      freopen("aprindere.in","r",stdin);
      freopen("aprindere.out","w",stdout);
    
      scanf("%d%d",&n,&m);
      for(i=0;i<n;++i)
         scanf("%d",&a[i]);
      for(i=1;i<=m;++i)
      {
          scanf("%d%d%d", &c, &timp, &nr);
          t[c]=timp;
          for(j=1;j<=nr;++j)
          {
            scanf("%d",&aux);
            in[c][aux]=1;
          }
            
      }
}

void solve()
{
      int ok=1;
      int i,poz;
      do
      {
            ok=0;
            for(i=0;i<n;++i)
                if(a[i]==0)
                {
                   poz=i;
                   ok=1;
                   break;
		}
	    if(ok==1)
	    {
            for(i=0;i<n;++i)
               if(in[poz][i]==1)
                  if(a[i]==0)
                     a[i]=1;
                  else
                     a[i]=0;
          
	    tot=tot+t[poz];
	    }

                     
      }
      while(ok==1);
}

void print()
{
     printf("%d\n",tot);
}

int main()
{
    read();
    solve();
    print();
    return 0;
}