Pagini recente » Cod sursa (job #1964324) | Cod sursa (job #2423132) | Cod sursa (job #2349305) | Cod sursa (job #3000961) | Cod sursa (job #1077438)
#include <fstream>
#include <vector>
#include <bitset>
#define MAXN 1000
using namespace std;
int N, M;
bitset<MAXN> aprins;
struct intrerupator {
int cost, nrc;
vector<int> camere;
}v[MAXN];
void input() {
ifstream in("aprindere.in");
in >> N >> M;
for (int i = 0; i < N; ++i) {
int val;
in >> val;
if (val) {
aprins[i] = 1;
}
}
for (int i = 0; i < M; ++i) {
int cam, c, nr, val;
in >> cam >> c >> nr;
v[cam].cost = c, v[cam].nrc = nr;
for (int j = 0; j < nr; ++j) {
in >> val;
v[cam].camere.push_back(val);
}
}
in.close();
}
int solve() {
int total = 0;
for (int i = 0; i < N; ++i) {
if (aprins[i]) {
continue;
}
total += v[i].cost;
int size = v[i].camere.size();
for (int j = 0; j < size; ++j) {
aprins[v[i].camere[j]] = 1 - aprins[v[i].camere[j]];
}
}
return total;
}
void output() {
ofstream out("aprindere.out");
out << solve();
out.close();
}
int main() {
input();
output();
return 0;
}