Cod sursa(job #1007578)

Utilizator Paula-ElenaPaula-Elena Margarit Paula-Elena Data 9 octombrie 2013 10:12:03
Problema Aprindere Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#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[0], &a[N], cmp);

    for (i=0; i<N; ++i)
    {
        if (used[i] == 0)
        {
            timp += a[i].t;
            for (j=0; j<a[i].nr; ++j)
            {
                int aux = a[i].v[j];
                used[aux] = !used[aux];
            }
        }
    }

    fout << timp << "\n";

    fin.close ();
    fout.close ();

    return 0;
}