⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 prod.pas

📁 PASCAL光盘资料PASCAL光盘资料PASCAL光盘资料
💻 PAS
字号:
program production;
const MaxNumber=1000;
var
 n,min:longint;
 a,b,m,o,order:array[1..MaxNumber] of integer;
procedure init;
 var
  i:integer;
 begin
  assign(input,'prod.in'); reset(input);
  readln(n);
  for i:=1 to n do read(a[i]);
  for i:=1 to n do read(b[i]);
  close(input);
 end;

procedure main;
var
 i,j,k,s,t,t1,t2:integer;
begin
 fillchar(m,sizeof(m),0);
 for i:=1 to n do
  if a[i]<b[i] then m[i]:=a[i] else m[i]:=b[i];
 for i:=1 to n do o[i]:=i;
 for i:=1 to n-1 do
  for j:=i+1 to n do
   if m[o[i]]>m[o[j]] then
    begin
     k:=o[i]; o[i]:=o[j]; o[j]:=k;
    end;
 fillchar(order,sizeof(order),0);
 s:=1; t:=n;
 for i:=1 to n do
  if m[o[i]]=a[o[i]] then
   begin
    order[s]:=o[i];
    inc(s);
   end
   else
    begin
     order[t]:=o[i];
     dec(t);
    end;
 t1:=0; t2:=0;
 for i:=1 to n do
  begin
   t1:=t1+a[order[i]];
   if t2<t1 then t2:=t1;
   t2:=t2+b[order[i]];
  end;
 min:=t2;
end;

procedure print;
var i:integer;
begin
 assign(output,'prod.out'); rewrite(output);
 writeln(min);
 for i:=1 to n-1 do write(order[i],' ');
 writeln(order[n]);
 close(output);
end;

begin
 init; main; print
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -