Pagini recente » Cod sursa (job #3170913) | Cod sursa (job #1787077) | Cod sursa (job #1431167) | Cod sursa (job #2465768) | Cod sursa (job #2489807)
#include <iostream>
#include <fstream>
#include <algorithm>
#define NMAX 10000
using namespace std;
ifstream f("aprindere.in");
ofstream g("aprindere.out");
int n, m;
int open[NMAX];
struct Camera {
int c, t, nr;
vector<int> camere_vecine;
}camera[NMAX];
bool cmp_camere(Camera c1, Camera c2) {
return (c1.c < c2.c ? true: false);
}
int main() {
f >> n >> m;
for (int i = 0; i < n; ++i) {
f >> open[i];
}
for (int i = 0; i < m; ++i) {
f >> camera[i].c >> camera[i].t >> camera[i].nr;
for (int j = 0; j < camera[i].nr; ++j) {
int x;
f >> x;
camera[i].camere_vecine.push_back(x);
}
}
sort(camera, camera + m, cmp_camere);
int timp_total = 0;
for (int i = 0; i < n; ++i) {
int pos = camera[i].c;
if (open[pos] == 0) {
timp_total += camera[i].t;
for (int j = 0; j < camera[i].nr; ++j) {
int camera_vecina = camera[i].camere_vecine[j];
open[camera_vecina] = 1 - open[camera_vecina];
}
}
}
g << timp_total;
return 0;
}