Cod sursa(job #2765229)

Utilizator DragosC1Dragos DragosC1 Data 25 iulie 2021 21:14:55
Problema Aprindere Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>
#include <vector>
#include <iostream>
using namespace std;

int n, m;
int inter[1005];
int cost[1005];

vector<int> a[1005];

void read() {
    int i, x, j, k, y;
    ifstream f("aprindere.in");
    f >> n >> m;
    for (i = 0; i < n; i++)    
        f >> inter[i];
    for (i = 1; i <= m; i++) {
        f >> x;
        f >> cost[x];
        f >> k;
        for (j = 1; j <= k; j++) {
            f >> y;
            a[x].emplace_back(y);
        }
    }
    f.close();
}

long long total_cost;

void solve() {
    int i, j;
    bool ok;
    for (i = 0; i < n; i++)
        if (!inter[i]) {
            total_cost += cost[i];
            for (j = 0; j < a[i].size(); j++)
                inter[a[i][j]] = !inter[a[i][j]];
            ok = 0;
        }
}

void output() {
    ofstream g("aprindere.out");
    g << total_cost;
    g.close();
}

int main() {
    read();
    solve();
    output();
    return 0;
}