- 合并果子
- 2008-12-16 15:55:15 @
到底是什么错误????
program fruit;
var i,j,p,q,m,n,max,temp,tempn,k:longint;
a:array[0..10000000] of longint;
b:array[0..10000] of longint;
begin
readln(n);
for i:=1 to n do
begin
read(m);
inc(a[m]);
end;
q:=n-1;
p:=0;
temp:=2;
for k:=0 to 10 do
for i:=0 to 10000000 do
begin
if q=0 then break;
for j:=1 to a[i] do
begin
if temp0 then
begin
tempn:=tempn+i+k*10000000;
dec(temp);
dec(a[i]);
end;
if (temp=0) and (tempn>=10000000*(k+1)) then
begin
temp:=2;
dec(q);
inc(a[tempn mod 100]);
b[p]:=tempn;
tempn:=0;
inc(p);
break;
end;
if (temp=0) and (tempn
5 条评论
-
seporg (wch2012) LV 4 @ 2024-06-23 17:08:09
15年前 来考古了
-
2015-08-23 11:12:27@
优先队列大法好……
-
2014-02-13 09:24:15@
同样
var a:array[1..20000] of longint;
b:array[1..10000] of longint;
c:array[1..4] of longint;
i,m,n,k,head,tail,ans,x:longint;
procedure max;
var i,j,temp:integer;
begin
if (c[1]>c[3]) then
if (c[4]<c[1]) then begin inc(a[c[1]]);inc(a[c[2]]);end
else begin inc(a[c[2]]);inc(head);end
else
if c[2]>c[3] then begin inc(a[c[2]]);inc(head);end;
for i:=1 to 3 do
for j:=i+1 to 4 do
if c[i]>c[j] then begin temp:=c[i];c[i]:=c[j];c[j]:=temp;end;
inc(tail);b[tail]:=c[1]+c[2];
ans:=ans+c[1]+c[2];
end;
begin
fillchar(a,sizeof(a),0);
readln(n);
for i:=1 to n do begin read(x);inc(a[x]);end;
k:=1;head:=1;tail:=0;
for i:=1 to 10000 do b[i]:=32767;
for i:=1 to n-1 do
begin
fillchar(c,sizeof(c),0);
m:=0;
while m<2 do
begin
while (a[k]=0) and (k<20000) do inc(k);
if k=20000 then
if c[1]<>0 then begin inc(m);c[m]:=500000000;end
else begin inc(m,2);c[1]:=500000000;c[2]:=500000000;end
else inc(m);c[m]:=k;dec(a[k]);
end;
c[3]:=b[head];c[4]:=b[head+1];
max;
end;
writeln(ans);
end. -
2012-11-03 19:52:54@
同上
├ 测试数据 01:答案错误... (0ms, 308KB)
├ 测试数据 02:答案正确... (0ms, 308KB)
├ 测试数据 03:答案错误... (0ms, 308KB)
├ 测试数据 04:答案错误... (0ms, 304KB)
├ 测试数据 05:运行时错误... (0ms, 308KB)
读取访问违规, 地址: 0x0000474f
├ 测试数据 06:答案错误... (0ms, 308KB)
├ 测试数据 07:答案错误... (0ms, 308KB)
├ 测试数据 08:答案错误... (0ms, 308KB)
├ 测试数据 09:答案错误... (0ms, 304KB)
├ 测试数据 10:答案错误... (0ms, 308KB)---|---|---|---|---|---|---|---|-
Unaccepted / 10 / 0ms / 308KBview sourceprint?01 #include
02 #include
03 #include
04 #include
05
06 using namespace std;
07
08 int f[10010];
09 int main()
10 {
11 int n;
12 scanf("%d",&n);
13 memset(f,0,sizeof(f));
14 for (int i=1;i
-
2009-08-22 20:43:10@
英雄所见略同
本来想桶排,然后简单循环乘法
得了十分
├ 测试数据 01:答案错误... ├ 标准行输出
├ 错误行输出├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案错误... ├ 标准行输出
├ 错误行输出├ 测试数据 04:答案错误... ├ 标准行输出
├ 错误行输出├ 测试数据 05:答案错误... ├ 标准行输出
├ 错误行输出├ 测试数据 06:答案错误... ├ 标准行输出
├ 错误行输出├ 测试数据 07:答案错误... ├ 标准行输出
├ 错误行输出├ 测试数据 08:答案错误... ├ 标准行输出
├ 错误行输出├ 测试数据 09:答案错误... ├ 标准行输出
├ 错误行输出├ 测试数据 10:答案错误... ├ 标准行输出
├ 错误行输出
- 1