Cod sursa(job #2496798)

Utilizator Alexandru_StoianStoian Sorin Alexandru Alexandru_Stoian Data 21 noiembrie 2019 17:51:32
Problema Aprindere Scor 100
Compilator cpp-64 Status done
Runda ad_hoc Marime 0.81 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("aprindere.in");
ofstream g("aprindere.out");

struct intrerupatoare{
    int c, t, m;
    int ca[101];
}a[1001];

bool cmp(intrerupatoare a, intrerupatoare b){
    return a.c<b.c || (a.c==b.c && a.t<b.t);
}

int n,m,ap[1001],cost;

int main(){
    f>>n>>m;
    for(int i=0; i<n; ++i)
        f>>ap[i];

    for(int i=1; i<=m; ++i){
        f>>a[i].c>>a[i].t>>a[i].m;
        for(int j=1; j<=a[i].m; ++j)
            f>>a[i].ca[j];
    }

    sort(a+1, a+m+1, cmp);

    for(int i=1; i<=m; ++i){
        if(ap[a[i].c]==0){
            cost=cost+a[i].t;
            ap[a[i].c]==1;
            for(int j=1; j<=a[i].m; ++j)
                ap[a[i].ca[j]]=!ap[a[i].ca[j]];
        }
    }

    g<<cost<<'\n';

    return 0;
}