Cod sursa(job #2260196)
Utilizator | Data | 14 octombrie 2018 15:56:08 | |
---|---|---|---|
Problema | Aprindere | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream f("aprindere.in");
ofstream g("aprindere.out");
int main()
{
int N,M;
f>>N>>M;
vector<int> V(N);
for(auto &i:V) f>>i;
map<int,pair<int,vector<int>>> S;
for(int i=0,k,n;i<M;i++)
{
f>>k;
f>>S[k].first>>n;
S[k].second.resize(n);
for(auto &i:S[k].second) f>>i;
}
int cost=0;
for(int i=0;i<N;i++)
{
if(V[i]==1) continue;
//if(S[i].second.empty()) {g<<-1; break;}
for(auto j:S[i].second) V[j]=!(bool)V[j];
cost+=S[i].first;
}
g<<cost;
return 0;
}