Cod sursa(job #3276209)

Utilizator GabrielPopescu21Silitra Gabriel - Ilie GabrielPopescu21 Data 12 februarie 2025 21:32:37
Problema Aprindere Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <bits/stdc++.h>
using namespace std;

const int MAX = 1005;
int a[MAX];
pair<int, vector<int>> L[MAX];

int main()
{
    ifstream cin("aprindere.in");
    ofstream cout("aprindere.out");
    int n, m;
    cin >> n >> m;

    int cnt = 0;
    for (int i = 0; i < n; ++i)
    {
        cin >> a[i];
        cnt += (a[i] == 1);
    }

    for (int i = 1; i <= m; ++i)
    {
        int c, t, k;
        cin >> c >> t >> k;

        L[c].first = t;
        for (int j = 1; j <= k; ++j)
        {
            int x;
            cin >> x;
            L[c].second.push_back(x);
        }
    }

    sort(L, L+n);

    int ans = 0;
    for (int i = 0; i < n && cnt != n; ++i)
    {
        if (L[i].second.size() > 0)
        {
            for (auto val : L[i].second)
            {
                if (a[val] == 1)
                {
                    a[val] = 0;
                    --cnt;
                }
                else
                {
                    a[val] = 1;
                    ++cnt;
                }
            }

            ans += L[i].first;
        }
    }

    cout << ans;

    return 0;
}