- 推销员
- 2017-08-04 13:04:04 @
Var
n,i,j,max,num:longint;
a,b:array[1..100000]of longint;
Procedure kp(l,r:longint);
Var
i,j,t,mid:longint;
Begin
i:=l; j:=r; mid:=b[(i+j) div 2];
repeat
while b[i]>mid do inc(i);
while b[j]<mid do dec(j);
if i<=j then
begin
t:=b[i]; b[i]:=b[j]; b[j]:=t;
t:=a[i]; a[i]:=a[j]; a[j]:=t;
inc(i); dec(j);
end;
until i>j;
if i<r then kp(i,r);
if l<j then kp(l,j);
End;
Begin
readln(n);
for i:=1 to n-1 do
read(a[i]);
readln(a[n]);
for i:=1 to n-1 do
read(b[i]);
readln(b[n]);
max:=-1;
for i:=1 to n do
if max<a[i]*2+b[i] then
begin
j:=i;
max:=a[i]*2+b[i];
end;
b[j]:=0;
writeln(max);
num:=max-a[j]*2;
kp(1,n);
i:=0;
while i<n-1 do
begin
inc(i);
num:=num+b[i];
if num+a[i]*2>max+b[i] then
max:=num+a[i]*2
else
if num+a[i]*2<=max+b[i] then
max:=max+b[i];
writeln(max);
end;
readln;
End.
我这个在洛谷是对的。然后我一组一组的数据测过。。都是对啊。。为啥vijos不能过啊
0 条评论
信息
- ID
- 1977
- 难度
- 8
- 分类
- (无)
- 标签
- 递交数
- 2269
- 已通过
- 267
- 通过率
- 12%
- 被复制
- 16
- 上传者