- 推销员
 - @ 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
 - 分类
 - (无)
 - 标签
 - 递交数
 - 2273
 - 已通过
 - 271
 - 通过率
 - 12%
 - 被复制
 - 17
 - 上传者