对于n个图形来说,不管按怎样顺序组合,最后得到的分数都是一样的。
假设有n个图形,大小分别为 。按照从左到右的合并方式进行处理可以得到。
可以看出来,最后得到分数是任意两个图形大小乘积的和,所以不管按照怎样顺序对图形进行合并得分结果都是相同的。因此,我们只要简单得按照题目进行计算即可。
#include <iostream> using namespace std; int main() { int n, a1,a2,score=0; cin>>n; cin>>a1; for(int i=1; i<n; ++i) { cin>>a2; score=score+a1*a2; a1=a1+a2; } cout<<score<<endl; }