Pagini recente » Cod sursa (job #457812) | Cod sursa (job #1718183) | Cod sursa (job #303321) | Cod sursa (job #1656249) | Cod sursa (job #2482336)
#include <iostream>
#include <fstream>
using namespace std;
const int NMAX = 1001;
ifstream fin("aprindere.in");
ofstream fout("aprindere.out");
int N, M;
int v[NMAX];
struct intrerupator
{
int t;
int nrl = -1;
int l[NMAX];
};
intrerupator C[NMAX];
void INV( int & x )
{
if( x == 1 ) x = 0;
else x = 1;
}
void Read()
{
fin >> N >> M;
for( int i = 0; i < N; ++i )
fin >> v[i];
int x, nr, tm;
for( int i = 1; i <= M; ++i )
{
fin >> x >> tm >> nr;
C[x].t = tm;
C[x].nrl = nr;
for( int i = 1; i <= nr; ++i )
fin >> C[x].l[i];
}
int Cost = 0;
for( int i = 0; i < N; ++i )
{
//for( int i = 0; i < N; ++i )fout << v[i] << ' ';fout << '\n';
if( C[i].nrl != -1 )
{
if( v[i] == 0 )
{
Cost += C[i].t;
for( int j = 1; j <= C[i].nrl; ++j )
INV( v[C[i].l[j]] );
}
}
}
fout << Cost;
}
int main()
{
Read();
return 0;
}