记录编号 |
21756 |
评测结果 |
AAAAAAAAAA |
题目名称 |
矩形分割 |
最终得分 |
100 |
用户昵称 |
donny |
是否通过 |
通过 |
代码语言 |
Pascal |
运行时间 |
0.006 s |
提交时间 |
2010-11-15 12:09:41 |
内存使用 |
0.26 MiB |
显示代码纯文本
program chocolate;
var
a:array[1..20000,1..2]of longint;
i,j,k,l:longint;
n,m:longint;
min:longint;
x,y:longint;
procedure sort(x,y:longint);
var
i,j,k,l:longint;
begin
i:=x;
j:=y;
k:=a[(x+y) div 2,1];
repeat
while a[i,1]>k do inc(i);
while a[j,1]<k do dec(j);
if i<=j then
begin
l:=a[i,1];
a[i,1]:=a[j,1];
a[j,1]:=l;
l:=a[i,2];
a[i,2]:=a[j,2];
a[j,2]:=l;
inc(i);
dec(j);
end;
until i>j;
if x<j then sort(x,j);
if i<y then sort(i,y);
end;
begin
assign(input,'cut.in');
reset(input);
assign(output,'cut.out');
rewrite(output);
readln(n,m);
for i:=1 to n-1 do
begin
read(a[i,1]);
a[i,2]:=1;
end;
readln;
for i:=1 to m-1 do
begin
read(a[n+i-1,1]);
a[n+i-1,2]:=2;
end;
sort(1,n+m-2);
x:=1;
y:=1;
min:=0;
for i:=1 to n+m-2 do
begin
case a[i,2] of
1:begin
min:=min+a[i,1]*y;
inc(x);
end;
2:begin
min:=min+a[i,1]*x;
inc(y);
end;
end;
end;
writeln(min);
close(input);
close(output);
end.