Pagini recente » Diferente pentru info-oltenia-2019/individual/clasament/10 intre reviziile 3 si 1 | Cod sursa (job #822946) | Cod sursa (job #441353) | Istoria paginii utilizator/deliabiancasci | Cod sursa (job #127576)
Cod sursa(job #127576)
#include <stdio.h>
#define DIM 1001
struct intrerupator {
long int t;
int nr;
int c[101];
};
struct cam {
char st;
intrerupator *i;
};
cam v[DIM];
long int n,m;
int i,j,x,c;
void main(){
FILE *f = fopen("aprindere.in","r");
fscanf(f,"%ld %ld",&n,&m);
for (i=0;i<n;i++) {
fscanf(f,"%d",&v[i].st);
}
for (i=1;i<=m;i++) {
fscanf(f,"%d",&x);
v[x].i = new intrerupator;
fscanf(f,"%ld %d",&v[x].i->t,&v[x].i->nr);
for (j=0;j<v[x].i->nr;j++) {
fscanf(f,"%d",&v[x].i->c[j]);
}
}
long int total = 0;
for (i=0;i<n;i++) {
if (v[i].st==0) {
total+=v[i].i->t;
for (j=0;j<v[i].i->nr;j++){
c = v[i].i->c[j];
if (v[c].st==1) v[c].st = 0;
else v[c].st = 1;
}
}
}
fclose(f);
FILE *g = fopen("aprindere.out","w");
fprintf(g,"%ld",total);
fclose(g);
}