逻辑题
如果直接就循环加的话最后两个点会超时,得15分
所以就要找规律,查一下求和里面一共有多少个当前元素即可
比如1 2 3 4 5
假设我取(i=3)3,3后面有(n-i+1)3个元素
用的到i的只有i前面和他本身,所以一共有3个数用到了i(1 2 3)
用的次数和他后面有几个数相关,用了3次
所以i一共用了33次就是 i(n-i+1)次
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <iostream>
#include <string>
#include <cctype>
#include <vector>
#include <cmath>
#include <map>
#include <set>
#include <unordered_map>
#include <cstring>
using namespace std;
int n;
double fin;
int main(){
cin >> n;
for(int i=1; i<=n; i++){
double a;
cin >> a;
fin += a*i*(n-i+1);
}
printf("%.2f\n",fin);
return 0;
}