var
sz:array [1..100000] of string;
da:array [1..100000] of longint;
s1,s2:string;
m,n,i,z,max,ii,w,y,x:longint;
procedure qsort(l,r:integer);
var
i,j:integer;
x,y:string;
begin
i:=l;
j:=r;
x:=sz[(l+r) div 2];
repeat
while sz[i]<x do inc(i);
while sz[j]>x do dec(j);
if i<=j
then begin
y:=sz[i];
sz[i]:=sz[j];
sz[j]:=y;
inc(i);
dec(j);
end;
until i>j;
if i<r
then qsort(i,r);
if l<j
then qsort(l,j);
end; //快排
begin
readln(n,m);
for i:=1 to n do
readln(sz[i]);
qsort(1,n);
max:=-maxlongint;
for i:=1 to m do
begin
readln(s1);
readln(w);
x:=1;
y:=n;
while sz[z]<>s1 do
begin
z:=(x+y) div 2;
if sz[z]<s1
then x:=z+1
else y:=z;
end; //二分查找
da[z]:=da[z]+w;
if (da[z]>max) or ((da[z]=max) and (sz[z]<s2))
then begin
max:=da[z];
s2:=sz[z];
ii:=z;
end; //比較
end;
writeln(sz[ii]);
end.
状态: Unaccepted
测评机: Xeond[6]
得分: 80分
提交日期: 2008-9-23 20:50:00
有效耗时: 1610毫秒
测试结果1: 通过本测试点|有效耗时156:ms
测试结果2: 通过本测试点|有效耗时156:ms
测试结果3: 通过本测试点|有效耗时156:ms
测试结果4: 通过本测试点|有效耗时188:ms
测试结果5: 通过本测试点|有效耗时188:ms
测试结果6: 通过本测试点|有效耗时203:ms
测试结果7: 通过本测试点|有效耗时219:ms
测试结果8: 通过本测试点|有效耗时344:ms
测试结果9: 运行错误|普通保护错误
测试结果10: 运行错误|普通保护错误
最後2個 為什麽 是 普通 保護錯誤啊 ?
哪位 大牛 解釋解釋 謝謝啊 !!
二分查找是自己編 的
估計 有些地方不對
謝謝 指正!
var
i,j:integer;
x,y:string;
错了
procedure qsort(l,r:longint);
var
i,j:longint;
x,y:string;