Pagini recente » Cod sursa (job #1495429) | Cod sursa (job #3322082) | Cod sursa (job #1431707) | Cod sursa (job #1040224) | Cod sursa (job #3331540)
#include <bits/stdc++.h>
using namespace std;
struct SwitchInfo {
bool exists = false; // există întrerupător în camera asta?
int t = 0; // timpul de apăsare
int nr = 0; // câte camere modifică
int c[105]; // lista camerelor modificate (nr <= 100)
};
int main() {
ifstream fin("aprindere.in");
ofstream fout("aprindere.out");
int n, m;
fin >> n >> m;
int a[1001];
for (int i = 0; i < n; i++) fin >> a[i];
SwitchInfo sw[1001];
for (int k = 0; k < m; k++) {
int C, T, NRC;
fin >> C >> T >> NRC;
sw[C].exists = true;
sw[C].t = T;
sw[C].nr = NRC;
for (int j = 0; j < NRC; j++) {
fin >> sw[C].c[j];
}
}
long long sum = 0;
for (int i = 0; i < n; i++) {
if (!sw[i].exists) {
continue;
}
if (a[i] == 0) {
for (int j = 0; j < sw[i].nr; j++) {
int room = sw[i].c[j];
a[room] ^= 1;
}
sum += sw[i].t;
}
}
fout << sum;
return 0;
}