Pagini recente » Cod sursa (job #35771) | Cod sursa (job #2882204) | Cod sursa (job #22001) | Cod sursa (job #2759832) | Cod sursa (job #7199)
Cod sursa(job #7199)
#include <stdio.h>
#define MAX 700
int main()
{
FILE *f=fopen("aprindere.in", "rt");
int n, i, j, k, m, tmax, tt, tc, c[MAX], t[MAX], a[MAX], p[MAX][MAX];
fscanf(f, "%i %i", &n, &m);
for (i=0; i<n; i++) fscanf(f, "%i", &a[i]);
for (i=0; i<m; i++)
{
fscanf(f, "%i %i %i", &c[i], &t[i], &p[i][0]);
for (j=1; j<=p[i][0]; j++)
{
fscanf(f, "%i", &p[i][j]);
}
}
for (j=0; j<n; j++) printf("%i ", a[j]);
printf("\n");
fclose(f);
i=0;
tc=0;
tmax=0;
while(i<n)
{
while(a[i]==1) i++;
if (i<n)
if (a[i]==0)
{
j=tc+1;
tt=1001;
while (j<m)
{
if (c[j]<=i)
for (k=1; k<=p[j][0]; k++)
if (p[j][k]==i)
if (tt>t[j]) { tt=t[j]; tc=j; }
j++;
}
for (j=1; j<=p[tc][0]; j++)
if (a[p[tc][j]]==1) a[p[tc][j]]=0; else a[p[tc][j]]=1;
tmax+=t[tc];
i++;
}
}
f=fopen("aprindere.out", "wt");
fprintf(f, "%i\n", tmax);
fclose(f);
return 0;
}