BoxerTC

Untitled

Jun 19th, 2015
382
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.80 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define sc( x ) scanf( "%d" , &x )
  5. #define REP( i , n ) for( int i = 0 ; i < n ; ++i )
  6. #define clr( t , val ) memset( t , val , sizeof( t ) )
  7.  
  8. #define pb push_back
  9. #define all( v ) v.begin() , v.end()
  10. #define SZ(v) ((int)(v).size())
  11.  
  12. #define mp make_pair
  13. #define fi first
  14. #define se second
  15.  
  16. #define N 100005
  17.  
  18. typedef long long ll;
  19.  
  20. int memo[N], last[N];
  21.  
  22. int main(){
  23.  
  24. int tc = 0;
  25. scanf("%d", &tc);
  26.  
  27. while(tc--){
  28.  
  29. int n, x;
  30. scanf("%d", &n);
  31.  
  32. long long ans = 0;
  33. memset(last, -1, sizeof last);
  34.  
  35. for(int i = 0; i < n; i++){
  36.  
  37. scanf("%d", &x);
  38. if(i == 0)memo[i] = x;
  39. else memo[i] = memo[i - 1] + (i - last[x]) * x;
  40. last[x] = i;
  41.  
  42. ans += memo[i];
  43. }
  44.  
  45. printf("%lld\n", ans);
  46.  
  47. }
  48.  
  49.  
  50. }
Advertisement
Add Comment
Please, Sign In to add comment