Cod sursa(job #1073067)

Utilizator federerUAIC-Padurariu-Cristian federer Data 5 ianuarie 2014 17:07:58
Problema Aprindere Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<fstream>
using namespace std;

ifstream fin("aprindere.in");
ofstream fout("aprindere.out");

int m[105][105], i, N, M, stare[1001];
int cost = 0, j;

int main()
{
	int c, t, nrc;
	fin >> N >> M;
	for (i = 0; i < N; ++i) fin >> stare[i];
	for (i = 1; i <= M; ++i)
	{
		fin >> c >> t >> nrc;
		m[c][0] = t;
		m[c][1] = nrc;
		for (j = 2; j <= nrc+1; ++j)
			fin >> m[c][j];
	}
	for (i = 0; i < N; ++i)
		if (m[i][0]>0 && stare[i]==0)
		{
			stare[i] = (stare[i] + 1) % 2;
			for (j = 2; j <= m[i][1]+1; ++j)
				stare[m[i][j]] = (stare[m[i][j]] + 1) % 2;
			cost += m[i][0];
		}
	fout << cost << '\n';
	fin.close();
	fout.close();
	return 0;
}