Cod sursa(job #7898)
#include <cstdio>
#include <vector>
using namespace std;
#define pb push_back
#define sz size()
#define Nmax 1024
int n, m, stare[Nmax], elem[Nmax], timp[Nmax], val;
vector<int> v[Nmax];
void readdata()
{
freopen("aprindere.in", "r", stdin);
freopen("aprindere.out", "w", stdout);
int i, j, c, nr;
scanf("%d %d\n", &n, &m);
for (i = 0; i < n; ++i)
scanf("%d", &stare[i]);
for (i = 0; i < m; ++i)
{
scanf("%d %d %d", &c, &timp[i], &nr);
elem[c] = i;
for (j = 0; j < nr; ++j)
{
scanf("%d", &val);
v[i].pb(val);
}
}
}
void solve()
{
int rez = 0, i, j, x;
for (i = 0; i < n; ++i)
if (!stare[i])
{
x = elem[i];
rez += timp[x];
for (j = 0; j < v[x].sz; ++j)
stare[v[x][j]] ^= 1;
}
printf("%d\n", rez);
}
int main()
{
readdata();
solve();
return 0;
}