Pagini recente » Cod sursa (job #76610) | Cod sursa (job #986635) | Cod sursa (job #911270) | Cod sursa (job #579155) | Cod sursa (job #997333)
Cod sursa(job #997333)
#include <iostream>
#include <cstdio>
#define MAX_N 1010
#define MAX_M 1010
#define MAX_NR 110
#define MAX_T 1010
using namespace std;
int N , M , NR , T , C , stare[MAX_N] , sw[MAX_M][MAX_NR], timpi[MAX_N] ;
void citire()
{
freopen("aprindere.in", "r", stdin);
scanf( "%d %d" , &N , &M ) ;
int i , j , t , aux ;
for( i = 0 ; i < N ; i++ )
{
scanf( "%d" , &stare[i] ) ;
}
for( i = 0 ; i < M ; i++ )
{
scanf( "%d %d %d " , &C , &t , &NR ) ;
timpi[C] = t ;
sw[C][C] = 1 ;
for( j = 1 ; j <= NR ; j++ )
{
scanf( "%d" , &aux ) ;
sw[C][aux] = 1 ;
}
}
}
void trigger_switch( int j )
{
int i ;
for( i = 0 ; i < N ; i++ )
{
if( sw[j][i] == 1 )//daca switchul j afecteaza camera i schimb starea camerei i
{
if( stare[i] == 1 )
{
stare[i] = 0 ;
}
else
{
stare[i] = 1 ;
}
}
}
}
int solve()
{
int sol = 0 , i, j, t, t_min, ales = -1 , k ;
for( i = 0 ; i < N ; i++ )
{
if ( stare[i] == 0 )//daca lumina este stinsa
{
trigger_switch(i);
sol += timpi[i] ;
}
}
return sol ;
}
int main()
{
freopen("aprindere.out","w",stdout);
citire();
printf("%d", solve() ) ;
return 0 ;
}