讨论 / 合并果子————为何此般?c++
wh3z_wsc 2011-11-08 04:05:00
点我顶贴 收藏 删除
状态: Unaccepted

测评机: Xeond[6]

得分: 30分

提交日期: 2011-11-6 12:24:00

有效耗时: 187毫秒

RQNOJ近期在线比赛列表

RQNOJ十一月月赛 时间:2011-11-6 19:00:00 [报名]

测试结果1: 通过本测试点|有效耗时62ms

测试结果2: 通过本测试点|有效耗时63ms

测试结果3: 通过本测试点|有效耗时62ms

测试结果4: 测试结果错误.错误结果为:378300893

正确结果应为:485694875

测试结果5: 测试结果错误.错误结果为:846572957

正确结果应为:1233019094

测试结果6: 测试结果错误.错误结果为:120970603

正确结果应为:131173003

测试结果7: 测试结果错误.错误结果为:176460404

正确结果应为:199205993

测试结果8: 测试结果错误.错误结果为:120045165

正确结果应为:130108340

测试结果9: 测试结果错误.错误结果为:206132168

正确结果应为:233393206

测试结果10: 测试结果错误.错误结果为:225839943

正确结果应为:260332759

#include<iostream>

using namespace std;

long long s=0;

int a[10001];

int main(){

//freopen("a.in","r",stdin);

//freopen("a.out","w",stdout);

int n,i,j,mx1,mx2,mi1,mi2;

cin>>n;

for(i=1;i<=n;i++)cin>>a[i];

for(i=1;i<n;i++){mx1=mx2=2000000;

mi1=mi2=0;

for(j=1;j<=n;j++){

if(a[j]<mx1){

mx2=mx1;

mi2=mi1;

mx1=a[j];

mi1=j;

}

else if(a[j]<mx2){

mx2=a[j];

mi2=j;}

}

s=s+a[mi1]+a[mi2];

a[mi1]=mx1+mx2;

a[mi2]=2000000;

}

cout<<s<<endl;

return 0;}

#1 wh3z_wsc@2011-11-08 04:05:00
回复 删除
#include<iostream>

#include<stdlib.h>

using namespace std;

long long s=0;

int a[10001];

int cmp(const void *a,const void *b){

return *(int *)a-*(int *)b;}

int main(){

int n,i,j,t;

cin>>n;

for(i=1;i<=n;i++)cin>>a[i];

qsort(a,n+1,sizeof(a[0]),cmp);

for(i=1;i<n;i++){

s+=a[i]+a[i+1];

a[i+1]+=a[i];

for(j=i+1;j<n;j++)

if(a[j+1]<a[j]){

t=a[j];

a[j]=a[j+1];

a[j+1]=t;}

}

cout<<s<<endl;

return 0;}

查看更多回复
提交回复