Cod sursa(job #127577)

Utilizator marinMari n marin Data 24 ianuarie 2008 15:59:47
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#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;

int 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);
  return 0;
}