The 12th Zhejiang Provincial Collegiate Programming Contest(部分)(四)

2015-11-21 01:03:50 · 作者: · 浏览: 28
ains an integer N (1 <= N <= 100000), which indicates the size of the array. The next line contains N positive integers separated by spaces. Every integer is no larger than 1000000.

Output

For each case, print the answer in one line.

Sample Input

3
5
1 2 3 4 5
3
2 3 3
4
2 3 3 2

Sample Output

105
21
38





#include
         
          
#include
          
            #include
           
             #include
            
              #include
             
               #include
              
                using namespace std; int a[100010]; int v[1001000]; int main() { int T; scanf("%d",&T); while(T--) { long long int n; memset(v,0,sizeof(v)); long long int sum = 0; int k = 1; scanf("%lld",&n); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); sum += (n-i+1)*k*a[i]; if(v[a[i]]) { sum -= v[a[i]] * (n-i+1)*a[i]; } v[a[i]] = i; k++; } printf("%lld\n",sum); } return 0; }