Pagini recente » Cod sursa (job #2282685) | Cod sursa (job #1060439) | Cod sursa (job #1049672) | Cod sursa (job #543894) | Cod sursa (job #872575)
Cod sursa(job #872575)
#include <fstream>
#include <stdio.h>
#include <bitset>
#include <assert.h>
using namespace std;
FILE *fi = fopen ("aprindere.in", "r");
FILE *fo = fopen ("aprindere.out", "w");
const int nmax = 1002;
int N, M, T;
bitset <nmax> B;
void cit ()
{
fscanf (fi, "%d%d", &N, &M);
for (int i = 0, b; i < N; i++)
{
fscanf (fi, "%d", &b);
B[i] = b;
}
}
void rez ()
{
int c, t, nr, c2;
while (M --)
{
fscanf (fi, "%d%d%d", &c, &t, &nr);
if (B[c] == 0)
{
T += t;
while (nr --)
{
fscanf (fi, "%d", &c2);
if (B[c2] == 0)
B[c2] = 1;
else
B[c2] = 0;
}
}
else
while (nr --)
{
fscanf (fi, "%d", &c2);
}
}
}
void afi ()
{
for (int i = 1; i < N; i++)
B[0] = B[0] & B[i];
if (B[0] == 1)
fprintf (fo, "%d ", T);
else
assert (0);
}
int main ()
{
cit ();
rez ();
afi ();
return 0;
}