| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
用什么堆啊,用什么stl啊,队列搞定#include<cstdio>
#include<cstdlib>
using namespace std;
int cmp(const void*a,const void*b)
{
return *(int*)a-*(int*)b;
}
int main()
{
unsigned __int64 total=0;
int qx[20001],hx,tx;
int qy[20001],hy,ty;
int n;
int i,j;
int t1,t2;
scanf("%d",&n);
for(i=1;i<=n;i++) scanf("%d",&qx[i]);
hx=1; tx=n;
hy=1; ty=0;
qsort(qx+1,n,sizeof(int),cmp);
for(i=1;i<=n-1;i++)
{
if(hy>ty)
{
t1=qx[hx];
hx++;
}
else if(hx>tx)
{
t1=qy[hy];
hy++;
}
else if(qx[hx]>qy[hy])
{
t1=qy[hy];
hy++;
}
else
{
t1=qx[hx];
hx++;
}
///
if(hy>ty)
{
t2=qx[hx];
hx++;
}
else if(hx>tx)
{
t2=qy[hy];
hy++;
}
else if(qx[hx]>qy[hy])
{
t2=qy[hy];
hy++;
}
else
{
t2=qx[hx];
hx++;
}
ty++;
qy[ty]=t1+t2;
total+=t1+t2;
// for(j=hx;j<=tx;j++)
// printf("%d ",qx[j]); puts("");
// for(j=hy;j<=ty;j++)
// printf("%d ",qy[j]);puts("");
// printf("%I64d %d %d %d %d %d/////////////\n",total,hx,tx,hy,ty,is);
}
printf("%I64d",total);
getchar();
getchar();
getchar();
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator