Cod sursa(job #28504)
Utilizator | 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.