Pagini recente » Cod sursa (job #632356) | Cod sursa (job #2016672) | Cod sursa (job #1893314) | Cod sursa (job #1240714) | Cod sursa (job #1083147)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("aprindere.in");
ofstream g("aprindere.out");
int aprinse[1000], n, m ,t = 0;
int a[1000][1001];
int main()
{
f >> n >> m;
for (int i=0;i<n;i++)
f >> aprinse[i];
for (int i=0;i<m;i++)
{
f >> a[i][1] >> a[i][2] >> a[i][3];
for (int j=4;j<=a[i][3]+3;j++)
f >> a[i][j];
}
bool ok;
do
{
int k;
ok = false;
for (int i=0;i < m;i++)
if (a[i][2] < a[i+1][2])
{
int temp = max(a[i][3],a[i+1][3]);
for (int j=1;j<=temp+3;j++)
{
k = a[i][j];
a[i][j] = a[i+1][j];
a[i+1][j] = k;
}
ok = true;
}
}
while (!ok);
for (int i=m-1;i>=0;i--)
{
ok =false;
if (!aprinse[a[i][4]]) ok =true;
if (ok)
{
for (int j=4;j<=a[i][3]+3;j++)
aprinse[a[i][j]] = !aprinse[a[i][j]];
t += a[i][2];
}
}
g << t << endl;
return 0;
}