Cod sursa(job #505408)

Utilizator andunhillMacarescu Sebastian andunhill Data 2 decembrie 2010 09:25:49
Problema Aprindere Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<fstream>
#include<bitset>
using namespace std;
ifstream f("aprindere.in");
ofstream g("aprindere.out");
int t[1001];
bool on[1001];
int info[1001][101];
void flip(int i)
{	if(on[i]) on[i]=0;
	else on[i]=1;
}
int main()
{	int i,j,N,M,cost,nrc;
	f>>N>>M;
	for(i=0;i<N;i++)
	{	f>>j; on[i]=(j==1?1:0); }
	for(i=1;i<=M;i++)
	{	f>>j>>cost>>nrc;
		info[j][0]=cost; info[j][1]=nrc;
		for(int k=2;k<=nrc+1;k++)
			f>>info[j][k];
	}
	for(i=0;i<N;i++)
	{	if(on[i]) 
		{	if(i>=1)
				t[i]=t[i-1]; 
			continue;
		}
		if(i>=1)
			t[i]=t[i-1]+info[i][0];
		else t[i]=info[i][0];
		for(j=2;j<=info[i][1]+1;j++)
			flip(info[i][j]);
	}
	g<<t[N-1];
	f.close();
	g.close();
	return 0;
}