图形最高分
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int arr[n];
for(int i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
for(int i=0;i<n-1;i++)//进行从大到小排序
{
for(int j=i+1;j<n;j++)
{
if(arr[i]<arr[j])
{
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
int s=0;
for(int i=0;i<n-1;i++)// a b c(a>b>c) s=a*b+(a+b)*c
{
s=s+arr[i]*arr[i+1];
arr[i+1]=arr[i]+arr[i+1];
}
printf("%d",s);
return 0;
}
题目描述
游戏一开始,玩家在每一轮可以合并两个图形,当只有一个图形的时候游戏结束,每个图形都有一个大小,合并完成后的图形的大小为x+y,x和y分别为合并之前的两个图形,与此同时,玩家会获得x*y的分数。
现在屏幕上出现了n个图形,每个图形的大小已知,请算出最大能获得的分数
输入描述
第一行输入一个整数n (2≤n≤100)
第二行输入n个整数范围在1到100之间
输出描述
输出一个整数代表最大能获得的分数
样例输入
3 1 2 3
样例输出
11
原文地址:https://blog.csdn.net/2401_87987385/article/details/143837715
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!