Cod sursa(job #1594638)

Utilizator BogdanIonesqBogdan Ionescu BogdanIonesq Data 9 februarie 2016 17:10:23
Problema Aprindere Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>

using namespace std;

int main()
{

      ifstream in ("aprindere.in");
      ofstream out ("aprindere.out");
	int n, m, light[1000], arr[104][1000], i, j, timp=0, inchis=1, maxi, copie, inchis_linie, x;

	in >> n >> m;
	for (i=0; i <=n-1; i++)
	{
		in >> light[i];
	}

	for (i=1; i <=m ; i++)
	{
		in >> arr[i][1];
		in >> arr[i][2];
		in >> arr[i][3];
		for (j=4; j <= 3+arr[i][3]; j++)
		{
			in >> arr[i][j];
		}
	}
	x=1;
	while(inchis != 0)
	{
		maxi=0;
		inchis=0;
		for (i=x; i <=m; i++)
		{
                  inchis_linie=0;
			for (j=4; j <= 3+arr[i][3]; j++)
			{
				if ( light[arr[i][j]] == 0)
				{
					inchis_linie++;
				}
			}
			inchis = inchis + inchis_linie;
			if ( inchis_linie > maxi)
			{
				copie=i;
				maxi=inchis_linie;
			}

		}
		for (j=4; j <= 3+arr[copie][3]; j++)
		{
			if (light[arr[copie][j]] == 1)
			{
				light[arr[copie][j]] = 0;
			}
			else
			{
				light[arr[copie][j]] = 1;
			}
		}

		timp=timp+arr[copie][2];
		x++;

	}


	out << timp;

	return 0;
}