Pagini recente » Cod sursa (job #511200) | Cod sursa (job #3271171) | Cod sursa (job #2941588) | Cod sursa (job #3291536) | Cod sursa (job #8395)
Cod sursa(job #8395)
using namespace std;
#include <cstdio>
#include <algorithm>
#include <vector>
#define X first
#define Y second
int N, M, v[1010], apr[1010][110], C[1010], NR[1010], T[1010];
int main()
{
freopen("aprindere.in", "r", stdin);
freopen("aprindere.out", "w", stdout);
scanf("%d %d", &N, &M);
for( int i = 0; i < N; i++ )
scanf("%d", v + i );
vector< pair<int,int> > vp;
for( int i = 0; i < M; i++ )
{
scanf( "%d %d %d", C + i, T + i, NR + i );
for( int j = 0; j < NR[i]; j++ )
scanf("%d", &apr[i][j] );
vp.push_back( make_pair(C[i],i) );
}
sort( vp.begin(), vp.end() );
int ret(0);
for( int i = 0; i < M; i++ )
{
int el = vp[ i ].Y, cmr = vp[ i ].X;
if( v[ cmr ] )
continue;
ret += T[ el ];
for( int j = 0; j < NR[ el ]; j++ )
v[ apr[ el ][ j ] ] ^= 1;
}
printf("%d\n", ret );
return 0;
}