Cod sursa(job #1542936)

Utilizator constantin.nastaseNastase Constantin constantin.nastase Data 5 decembrie 2015 20:12:09
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <iostream>
#include <fstream>
#define N 1000

using namespace std;

int main(){
	int n, m, r, s,state[N], sw_affected[N][N], time[N];
	long sum = 0;
	ifstream f("aprindere.in");
	ofstream g("aprindere.out");
	f >> n >> m;
	
	for (int i = 0; i < n; i++){
		f >> state[i];
	}

	for (int i = 0; i < n; i++){
		f >> s;
		f >> time[s];
		f >> r;
		for (int j = 0; j < r; j++){
			int sw;
			f >> sw;
			sw_affected[s][sw] = 1;
		}
	}
	f.close();

	for (int i = 0; i < n; i++){
		if (state[i] == 0){
			sum+=time[i];
			for (int j = 0; j < n; j++){
				if (sw_affected[i][j] == 1){
					if (state[j] == 1) state[j] = 0;
					else state[j] = 1;
				} 
			}
		}
	}

	g<<sum;
	g.close();
	return 0;
}