/* 4 2 3 5 10 (2,3)(3,5)(5,10) (10,2) (1) 最大能量的规律是先把数字小的合并,最后剩下两个最大的 10-2-3—————(10,3)~60 10-3-5—————(10,5)~150 10-5-10—————(10,10)~500 总能量sum为710 */ #include<bits/stdc++.h> using namespace std; int n,sum; int main(){ cin>>n; int a[n]; for(int i=0;i<n;i++){ cin>>a[i]; } //构造二位数组 int b[n][2]; for(int i=0;i<n;i++){ b[i][0]=a[i]; if(i==n-1){ b[i][1]=a[0]; }else{ b[i][1]=a[i+1]; } //cout<<b[i][0]<<" "<<b[i][1]<<endl; } //对能量项链上的标记数 小——>大 sort(a,a+n); int x,y; for(int i=0;i<n-1;i++){ for(int pos=0;pos<n;pos++){ //找到序列前缀为当前最小值 if(b[pos][0]==a[i]){ x=pos; } //找到序列后缀为最小值 if(b[pos][1]==a[i]){ y=pos; } } sum+=b[x][0]*b[x][1]*b[y][0]; b[x][0]=b[y][0]; b[y][0]=b[y][1]=0; } cout<<sum<<endl; return 0; }
0.0分
0 人评分
A+B for Input-Output Practice (II) (C语言代码)浏览:590 |
C语言程序设计教程(第三版)课后习题4.9 (C++代码)浏览:2149 |
C二级辅导-进制转换 (C语言代码)浏览:828 |
简单的a+b (C语言代码)浏览:629 |
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:2468 |
C语言程序设计教程(第三版)课后习题11.3 (C语言代码)浏览:1049 |
C语言程序设计教程(第三版)课后习题11.3 (C语言代码)浏览:738 |
人见人爱A+B (C语言代码)浏览:628 |
printf基础练习2 (C语言代码)浏览:942 |
兰顿蚂蚁 (C++代码)浏览:1045 |