Cod sursa(job #1074549)

Utilizator GaborGabrielFMI - GabrielG GaborGabriel Data 7 ianuarie 2014 18:59:58
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#include <vector>
using namespace std;

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

#define MAXN 1005
int N, M, aprins[MAXN], cost[MAXN], cost_total = 0;
vector<int> intrerupatoare[MAXN];

int main()
{
	// Local
	int i, a, b, c;

	f >> N >> M;
	for (i = 0; i < N; ++i)
		f >> aprins[i];

	for (i = 1; i <= M; ++i)
	{
		f >> a;
		f >> cost[a] >> b;
		while (b--)
			f >> c, intrerupatoare[a].push_back(c);
	}

	for (i = 0; i < N; ++i)
	if (!aprins[i])
	{
		cost_total += cost[i];
		for (a = 0; a < intrerupatoare[i].size(); ++a)
		{
			b = intrerupatoare[i][a];
			aprins[b] = (aprins[b] * (-1)) + 1;
		}
	}


	g << cost_total << '\n';

	return 0;
}