Cod sursa(job #972944)

Utilizator marius135Dumitran Adrian Marius marius135 Data 12 iulie 2013 23:06:44
Problema Aprindere Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>
#include<vector>
#include<iostream>

using namespace std;
#define maxn 1001

int camere[maxn], lum[maxn], cost[maxn];
vector<int> vec[maxn];


int main() {
	
	
	freopen("aprindere.in", "r", stdin);
	freopen("aprindere.out", "w" ,stdout);
	int n, m;
	
	cin >>n>>m;
	for( int i = 0; i < n; ++i)
		cin>>camere[i];
	
	for( int i = 1; i <= m; ++i) {
		int cam, nrc;
		cin>>cam>>cost[i]>>nrc;
		lum[cam] = i;
		for( int j = 1; j <nrc; ++j) {
			int x;
			cin>>x;
			vec[i].push_back(x);
		}
		
	}
	int total = 0;
	for( int i = 0; i < n; ++i) {
		if( camere[i] == 0) {
			total += cost[lum[i]];
			for( size_t j = 0; j < vec[lum[i]].size(); ++j)
				camere[ vec[lum[i]][j] ] = 1 - camere[ vec[lum[i]][j]];
		}
	}
	
	cout<<total;
	
	return 0;
}