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

📄 2573.txt

📁 北大ACM题目例程 详细的解答过程 程序实现 算法分析
💻 TXT
字号:
Problem Id:2573  User Id:fzk 
Memory:56K  Time:60MS
Language:C  Result:Accepted

Source 

#include"stdio.h"
void px(int *a,int n,int m)
{int s,i=n+1,j=m;
if(n>=m)return;

while(i<j)
{
while(a[n]>=a[i]&&i<j)i++;
while(a[n]<=a[j]&&j>i)j--;

if(a[i]>a[j]){s=a[i];a[i]=a[j];a[j]=s;}
}

if(a[i]>a[n])i--;

s=a[i];a[i]=a[n];a[n]=s;
px(a,n,i-1);
px(a,i+1,m);
}



main()
{int a[1001],total,i,j,k;
long t;
/*while(1)*/
scanf("%d",&total);




for(i=0;i<total;i++)scanf("%d",a+i);

if(total==1){printf("%d\n%d\n",a[0],a[0]);exit(0);}

px(a,0,total-1);

i=total-2;

while(a[i]>2*a[1]-a[0]&&i>=2)i-=2;

i+=2;j=i-1; k=i;

t=0;
for(;i<total-1;i+=2)t+=a[0]+2*a[1]+a[i+1];

for(;j>=1;j--){t+=a[0]+a[j];if(j==1)t-=a[0];}

printf("%ld\n",t);




for(i=k;i<total-1;i=i+2)
{printf("%d %d\n",a[0],a[1]);
printf("%d\n",a[0]);
printf("%d %d\n",a[i],a[i+1]);
printf("%d\n",a[1]);
}
for(i=1;i<k;i++){printf("%d %d\n",a[0],a[i]);
if(i==k-1)break;printf("%d\n",a[0]);
}
}
	


⌨️ 快捷键说明

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