Cod sursa(job #28504)

Utilizator maria_pparcalabescu maria daniela maria_p Data 7 martie 2007 21:48:21
Problema Aprindere Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 2.19 kb
var f,g:text;
    b,nr:array[0..1000,0..1000]of longint;
    a,t:array[0..1000]of longint;
    i,j,k,n,x,timp,m,q,max,min,p:longint;
begin
assign(f,'aprindere.in');reset(f);
assign(g,'aprindere.out');rewrite(g);
readln(f,n,m);
dec(n);dec(m);
for i:=0 to n do
    read(f,a[i]);
for i:=0 to m do
    begin
    read(f,x);
    read(f,t[x]);
    read(f,nr[x,0]);
    for j:=1 to nr[x,0] do
        begin
        read(f,nr[x,j]);
        inc(b[nr[x,j],0]);
        b[nr[x,j],b[nr[x,j],0]]:=x;
        end;
    readln(f);
    end;
timp:=0;
for i:=0 to n do
    if a[i]=0 then if b[i,0]>1 then begin
                                    max:=1;min:=1000;p:=0;
                                    for j:=1 to b[i,0] do
                                        begin
                                        q:=0;
                                        for k:=1 to nr[b[i,j],0] do
                                            if a[nr[b[i,j],k]]=0 then inc(q);
                                        if(q>max)and(t[b[i,j]]<min)then
                                                  begin
                                                  max:=q;
                                                  min:=t[b[i,j]];
                                                  p:=j;
                                                  end;
                                        if q=max then if nr[b[i,j],0]=1 then p:=j;
                                        end;
                                    for j:=1 to nr[b[i,p],0] do
                                        if a[nr[b[i,p],j]]=0 then a[nr[b[i,p],j]]:=1
                                                             else a[nr[b[i,p],j]]:=0;
                                    timp:=timp+t[b[i,p]];
                                    end
                               else begin
                                    for j:=1 to nr[b[i,1],0] do
                                        if a[nr[b[i,1],j]]=0 then a[nr[b[i,1],j]]:=1
                                                             else a[nr[b[i,1],j]]:=0;
                                    timp:=timp+t[b[i,1]];
                                    end;
writeln(g,timp);
close(f);
close(g);
end.