Cod sursa(job #1066392)

Utilizator brainwashed20Alexandru Gherghe brainwashed20 Data 24 decembrie 2013 17:28:14
Problema Aprindere Scor 0
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 0.88 kb
#include<fstream>
#include<vector>

using namespace std;

const int Nmax = 1024;

ifstream f("aprindere.in");
ofstream g("aprindere.out");

int n, m, tmin, timp[Nmax];
vector<int> intrerupatoare[Nmax];
bool camera[Nmax];

int main() {

	int i, j, camera_curenta, timp_curent, nr_camere, camera_vecina;

	f >> n >> m;

	for (i = 0; i < n; ++i)
		f >> camera[i];

	for (i = 1; i <= m; ++i) {
		f >> camera_curenta >> timp_curent >> nr_camere;
		timp[camera_curenta] = timp_curent;
		for (j = 1; j <= nr_camere; ++j) {
			f >> camera_vecina;
			intrerupatoare[camera_curenta].push_back(camera_vecina);
		}
	}

	for (i = 0; i < n; ++i)
		if (camera[i] == 0) {
			tmin += timp[i];
			for (auto it = intrerupatoare[i].begin(); it != intrerupatoare[i].end(); ++it)
				camera[*it] = !camera[*it];

		}

	g << tmin << "\n";

	f.close();
	g.close();

	return 0;
}
s