Cod sursa(job #529843)

Utilizator DaninetDani Biro Daninet Data 6 februarie 2011 11:48:42
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <cstdio>
bool light[1000]; 

struct lightSwitch {
	int id;
	int time;
	int roomNum;
	int rooms[100];
}sw[1000], aux;



int main() {
	FILE *f, *g;
	f = fopen("aprindere.in", "r");
	g = fopen("aprindere.out", "w");
	int n,m;
	fscanf(f, "%d %d", &n, &m);
	for(int i = 0; i<n; ++i) 
		fscanf(f, "%d", &light[i]);
	
	for(int i = 0; i<m; ++i) {
		fscanf(f, "%d %d %d", &aux.id, &aux.time, &aux.roomNum);
		for(int j = 0; j<aux.roomNum; ++j) {
			fscanf(f, "%d", &aux.rooms[j]);
		}
		sw[i] = aux;
	}
	int res = 0;
	
	for(int i = 0; i<n; ++i)
		if(!light[i]) 
			for(int j = 0; j<m; ++j)
				if (sw[j].id == i) {
					for(int k = 0; k<sw[j].roomNum; ++k) {
						light[sw[j].rooms[k]] = !light[sw[j].rooms[k]];
					}
					res+=sw[j].time;
				}
				
	
	fprintf(g, "%d", res);
	fclose(g);
}