Cod sursa(job #1007607)

Utilizator Paula-ElenaPaula-Elena Margarit Paula-Elena Data 9 octombrie 2013 12:13:08
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 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, poz;
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+M, cmp);

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

    fout << timp;

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

    return 0;
}