Pagini recente » Cod sursa (job #1498361) | Cod sursa (job #557307) | Cod sursa (job #1097561) | Cod sursa (job #1573160) | Cod sursa (job #1007581)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin ("aprindere.in");
ofstream fout ("aprindere.out");
const int MAXN = 1010, MAXNNR = 110;
int N, M, timp;
bool used[MAXN];
struct val
{
int c, t, nr, v[MAXNNR];
}
a[MAXN];
bool cmp (val x, val y)
{
return x.c < y.c;
}
int main ()
{
int i, j;
fin >> N >> M;
for (i=0; i<N; ++i)
fin >> used[i];
for (i=0; i<M; ++i)
{
fin >> a[i].c >> a[i].t >> a[i].nr;
for (j=0; j<a[i].nr; ++j)
fin >> a[i].v[j];
}
sort (a, a+N, cmp);
for (i=0; i<N; ++i)
{
if (used[a[i].c] == 0)
{
timp += a[i].t;
used[a[i].c] = 1;
for (j=0; j<a[i].nr; ++j)
{
if(a[i].c != j)
{
int aux = a[i].v[j];
used[aux] = !used[aux];
}
}
}
}
fout << timp;
fin.close ();
fout.close ();
return 0;
}