D - MaratonIME in the golden moment
time limit per test0.5 s
memory limit per test256 MB
inputstandard input
outputstandard output
Statements
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 x and 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 10
Output
50
Input
4
1 3 7 11
Output
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.
**提示:**对于输入的数每两个数字有且进行一次相乘并求和,由于本题限时要求高,不能简单的用二重for循环,会超时
AC代码:
#include <bits/stdc++.h>
using namespace std;
long long a[100010];
int main()
{
long long n,s,num,i;
while(cin>>n&&n>=1)
{
s=0,num=0;
for(i=0; i<n; i++)
{
cin>>a[i];
s+=a[i]; //求和
}
for(i=0; i<n-1; i++)
{
s-=a[i]; //每次减一个数
num+=a[i]*s; //求和
}
cout<<num<<endl;
}
return 0;
}
余生还请多多指教!