第二次CE:找不到“begin”
第三次WA30:过后三点,其余超时+无输出
第四次WA40:过后四点,其余超时+无输出
第五次WA30:过后三点,其余超时+无输出
交的都是一样的程序。。。
var ans,w,i,j,n:integer;
l:array[1..60,0..6] of integer;
f,b:array[0..60] of integer;
function ok:boolean;
var i:integer;
begin
for i:=1 to n do
if b[i]=0 then exit(false);
exit(true);
end;
procedure bb(x:integer);
var i:integer;
begin
for i:=1 to l[x,0] do
inc(b[l[x,i]]);
end;
procedure cadd(x:integer);
begin
inc(f[0]);
f[f[0]]:=x;
bb(x);
end;
procedure del;
var i:integer;
begin
for i:=1 to l[f[f[0]],0] do
dec(b[l[f[f[0]],i]]);
dec(f[0]);
end;
procedure add;
var i:integer;
begin
if f[f[0]]+1<=w then begin
for i:=1 to l[f[f[0]],0] do
dec(b[l[f[f[0]],i]]);
inc(f[f[0]]); bb(f[f[0]]);
end else begin
del;
add;
end;
end;
begin
readln(n,w);
for i:=1 to w do begin
read(l[i,0]);
for j:=1 to l[i,0] do read(l[i,j]);
readln;
end;
ans:=maxint;
while f[1]<>w do begin
if ok then begin
ans:=f[0];
del;
add;
end else
if f[0]+1>=ans then add
else begin
if f[f[0]]+1<=w then cadd(f[f[0]]+1)
else begin
del;
add;
end;
end;
{for i:=1 to f[0] do
write(f[i],' '); writeln;
writeln('ans=',ans);}
end;
if ok then ans:=1;
writeln(ans);
end.