讨论 / 到底哪里错了啊
1057344119 2013-07-08 01:09:00
点我顶贴 收藏 删除
program ex;

var a,b:array[1..2000] of longint;

n,m,i,j,sum:longint;

procedure swap(var x,y:longint);

var temp:longint;

begin

temp:=x;

x:=y;

y:=temp;

end;

procedure qs1(l,r:longint);

var tl,tr,mid:longint;

begin

tl:=l;tr:=r;mid:=a[(tl+tr)div 2];

repeat

while a[tl]<mid do inc(tl);

while a[tr]>mid do dec(tr);

if tl<=tr then begin swap(a[tl],a[tr]);inc(tl);dec(tr);end;

until tl>tr;

if tl<r then qs1(tl,r);

if l<tr then qs1(l,tr);

end;

procedure qs2(l,r:longint);

var tl,tr,mid:longint;

begin

tl:=l;tr:=r;mid:=b[(tl+tr)div 2];

repeat

while b[tl]<mid do inc(tl);

while b[tr]>mid do dec(tr);

if tl<=tr then begin swap(b[tl],b[tr]);inc(tl);dec(tr);end;

until tl>tr;

if tl<r then qs2(tl,r);

if l<tr then qs2(l,tr);

end;

begin

read(n,m);

sum:=0;

for i:=1 to n do read(a[i]);

for i:=1 to m do read(b[i]);

qs1(1,n);

qs2(1,m);

for i:= n downto 1 do

begin

for j:=m downto 1 do

begin

if (b[j]>=0) and (a[i]>b[j]) then begin inc(sum);b[j]:=-1; break;end;

b[j]:=-1;

end;

end;

sum:=m-sum;

write(sum);

end.

有效耗时: 156毫秒

测试结果1: 测试结果错误.错误结果为:966

正确结果应为:967

测试结果2: 测试结果错误.错误结果为:0

正确结果应为:1

测试结果3: 测试结果错误.错误结果为:5

正确结果应为:8

测试结果4: 测试结果错误.错误结果为:142

正确结果应为:145

测试结果5: 测试结果错误.错误结果为:1

正确结果应为:4

测试结果6: 测试结果错误.错误结果为:4

正确结果应为:7

测试结果7: 测试结果错误.错误结果为:20

正确结果应为:24

测试结果8: 测试结果错误.错误结果为:28

正确结果应为:37

测试结果9: 测试结果错误.错误结果为:1

正确结果应为:5

测试结果10: 通过本测试点|有效耗时156ms

#1 hsm614517873@2013-05-04 17:47:00
回复 删除
路过

#2 CalicoCat@2013-07-08 01:09:00
回复 删除

我也是只过了最后一个测试点。。。

查看更多回复
提交回复