Cod sursa(job #1081487)

Utilizator BuseSorinFMI Buse Sorin-Marian BuseSorin Data 13 ianuarie 2014 18:03:47
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#include <algorithm>
using namespace std;
 
int n, m, v[1010];
struct stu {int C, T, a[1010];} a[1010];
 
inline bool cmp(stu a, stu b)
{
    return a.C < b.C;
}
 
int main()
{
    ifstream f("aprindere.in");
    ofstream g("aprindere.out");
 
    f >> n >> m;
    for (int i = 1; i <= n; ++i)
        f >> v[i];
 
    for (int i = 1; i <= m; ++i)
    {
        f >> a[i].C >> a[i].T >> a[i].a[0];
        ++a[i].C;
        for (int j = 1; j <= a[i].a[0]; ++j)
        {
            f >> a[i].a[j];
            ++a[i].a[j];
        }
    }
    sort(a + 1, a + m + 1, cmp);
 
    int sol = 0;
    for (int i = 1; i <= m; ++i)
        if (!v[a[i].C])
        {
            sol += a[i].T;
            for (int j = 1; j <= a[i].a[0]; ++j)
                v[a[i].a[j]] = !v[a[i].a[j]];
        }
 
    g << sol << '\n';
    return 0;
}