Cod sursa(job #1143251)

Utilizator BeilandArnoldArnold Beiland BeilandArnold Data 15 martie 2014 06:54:14
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#include <vector>

struct SW{
	unsigned cost;
	std::vector<unsigned> act;
};


int main(){
	std::ifstream fin("aprindere.in");
	std::ofstream fout("aprindere.out");

	unsigned n,m; fin>>n>>m;

	std::vector<bool> stari(n,false);
	std::vector<SW> intr(n);

	for(unsigned i=0;i<n;++i){ char c; fin>>c; if(c=='1') stari[i]=true; }

	for(unsigned i=0;i<n;++i){
		unsigned ind,c,nr; fin>>ind>>c>>nr;
		intr[ind].cost=c;
		intr[ind].act.resize(nr);

		for(unsigned j=0;j<nr;++j) fin>>intr[ind].act[j];
	}

	unsigned total=0;

	for(unsigned i=0;i<n;++i)
		if(!stari[i]){
			total+=intr[i].cost;
			for(unsigned j=0;j<intr[i].act.size();++j) stari[intr[i].act[j]]=!stari[intr[i].act[j]];
		}

	fout<<total<<'\n';
}