Cod sursa(job #24566)

Utilizator vladcyb1Vlad Berteanu vladcyb1 Data 2 martie 2007 21:16:29
Problema Aprindere Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.05 kb

  const
        FIN = 'aprindere.in';
        FOUT = 'aprindere.out';
        NMAX = 1000;

  var
     A : array[ 0..NMAX, 0..NMAX ] of longint;
     C, STATE : array[ 0..NMAX ] of longint;
     N, M, cost : longint;
     f, g : text;

  procedure read_data;
   var i, j, room : longint;
   begin
    assign( f, FIN ); reset( f ); readln( f, N, M );
    for i := 0 to N - 1 do read( f, STATE[i] );
    for i := 1 to M do
      begin
      read( f, room ); read( f, C[room], A[room][0] );
      for j := 1 to A[room][0] do read( f, A[room][j] );
      end;
    close( f );
   end;

  procedure solve;
   var i, j : longint;
   begin
    cost := 0;
    for i := 0 to N - 1 do
      if state[i] = 0 then begin
           for j := 1 to A[i][0] do state[ A[i][j] ] := 1 - state[ A[i][j] ];
           inc( cost, C[i] );
                           end;
    end;

  procedure save;
   begin
    assign( g, FOUT ); rewrite( g );
    writeln( g, cost );
    close( g );
   end;

   begin
    read_data;
    solve;
    save;
   end.