讨论 / 求助
zhujicheng 2012-10-04 00:19:00
点我顶贴 收藏 删除
program ping;

type ty=array [1..2000] of integer;

var m,n,i,k,zo:integer;

ap:ty;

tao:array [1..300] of integer;

procedure paixu(var b:ty; s,t:integer);

var i,j,k:integer;

begin

if s < t then

begin

i:=s;j:=t;k:=b[s];

repeat

while (b[j]<k) and (j>i) do dec(j);

if j>i then begin b[i]:=b[j];inc(i);end;

while (b[i]>k) and (i<j) do inc(i);

if i<j then begin b[j]:=b[i];dec(j);end;

until i=j;

b[i]:=k;

paixu(b,s,i-1);

paixu(b,j+1,t);

end;

end;

begin

readln(n,m);

for i:=1 to n do

readln(ap[i]);

for i:=1 to m do

begin

readln(k);

inc (tao[k]);

end;

paixu(ap,1,n);

for i:= 1 to n do

begin

if tao[ap[i]-1] <>0

then

begin

dec(tao[ap[i]-1]);continue;

end;

dec(ap[i]);if ap[i]-1<=0 then continue;

end;

for i:= 1 to 300 do

zo:=zo+tao[i];

writeln(zo);

end.

查看更多回复
提交回复