trời , vậy a hieu : e không được nộp bài nữa à ! huhu
[=========> Bổ sung bài viết <=========]
biết vậy nộp sớm , khỏi chỉnh sửa cũng ăn dc vài test roài huhu
[=========> Bổ sung bài viết <=========]
hay a kéo dài hạn nộp ra , a cứ cho hạn nộp là 1 ngày thì cuối cùng cuộc thi cũng chỉ cho mình quang thi chớ mấy ^^, mem khác bận túi bụi
[=========> Bổ sung bài viết <=========]
code của e nè , quái là chạy với m, n =10000 thì 1s, còn 100000 thì lên tới 15s , kì lạ thật
a hieu có code nào chạy 1s với M=N=100000 thì chỉ giùm cái thuật toán với
PHP Code:
type bld=-2..100000;
var h,ax:array***91;1..100000***93; of bld;
free:array***91;1..100000***93; of boolean;
f:text;
m,n:bld;
max1,max2:bld;
procedure init;
var i:bld;
begin
for i:=1 to n do begin free***91;i***93;:=true; h***91;i***93;:=1; ax***91;i***93;:=i; end;
max1:=-1;
max2:=-2;
end;
procedure find(var a,b:bld);
begin
while ax***91;a***93;<>a do a:=ax***91;a***93;;
while ax***91;b***93;<>b do b:=ax***91;b***93;;
end;
procedure nhap;
var i,a,b:bld;
begin
assign(f,'bunch.inp');
reset(f);
readln(f,n,m);
init;
for i:=1 to m do
begin
readln(f,a,b);
find(a,b);
if a<>b then
begin
free***91;a***93;:=false;
h***91;b***93;:=h***91;b***93;+h***91;a***93;;
ax***91;a***93;:=b;
end;
end;
close(f);
end;
procedure findmax;
var i:bld;
begin
for i:=1 to n do if free***91;i***93; then
if h***91;i***93;>max1 then
begin
max2:=max1;
max1:=h***91;i***93;;
end
else if h***91;i***93;>max2 then max2:=h***91;i***93;;
end;
procedure ghi;
begin
assign(f,'bunch.out');
rewrite(f);
write(f,max1+max2);
close(f);
end;
BEGIN
nhap;
findmax;
ghi;
END.
Bookmarks