D - MaratonIME in the golden moment
Problem Description
It is a common knowledge the importance in practicing a physical activity, mainly when you take part in ICPC competitions. Keeping this in mind, Giovana Delfino invited her friends from MaratonIME to go rowing.
The initial total ability of the boat is 0. Despite the equal enthusiasm of all members, each friend i has a physical ability h(i). Dear teacher Gabi knows that whenever two friends xand y are together in the boat, the boat's total ability is increased by h(x)·h(y).
Giovana invited n friends, but rowing is not always possible when you have programming assignments and exams of the great professor Arnaldo Mandel ahead, so sometimes not everyone shows up. However, the teacher Gabi is very optimistic and hopes that, for the final semester competition, all n friends will attend in order to increase MaratonIME odds. Help Gabi find the total ability of the boat in this possible golden moment, assuming all friends show up.
Input
The first line contains one integer n (1 ≤ n ≤ 105) - the number of friends invited to row.
The second line contains n integers h1, h2, ..., hn(1 ≤ hi ≤ 3·104) - the abilities of each member.
Output
Print one integer - the boat's total ability in the golden moment.
Examples
Input
2 5 10Output
50Input
4 1 3 7 11Output
152
Note
In the first example, in the golden moment there will be two members on the boat, then the ability there will be 5 × 10 = 50.
代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
long long i, n, sum = 0, a[100010], num = 0;
scanf("%lld", &n);
for(i = 0; i < n; i++)
{
scanf("%lld", &a[i]);
sum += a[i]; // sum求总和
}
for(i = 0; i < n - 1; i++)
{
sum -= a[i]; // 每次减去第一个数
num += a[i] * sum; // 然后用当前的数乘以后边所有的数,即那些数之和
}
printf("%lld\n", num);
return 0;
}