Advertisement
Guest User

You Can't Repeat it.

a guest
Nov 13th, 2021
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.51 KB | None | 0 0
  1. /* ***Bismillahir Rahmanir Rahim*** */
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4.  
  5. #define fastio() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
  6. #define MOD 1000000007
  7. #define MOD1 998244353
  8. #define INF 1e18
  9. #define nn "\n"
  10. #define pb push_back
  11. #define ppb pop_back
  12. #define mp make_pair
  13. #define ff first
  14. #define ss second
  15. #define PI 3.141592653589793238462
  16. #define sz(x) ((int)(x).size())
  17. #define all(x) (x).begin(), (x).end()
  18. #define point(a) fixed << setprecision(a)
  19.  
  20. typedef long long ll;
  21. typedef unsigned long long ull;
  22. typedef long double lld;
  23.  
  24. #ifndef ONLINE_JUDGE
  25. #define debug(x) cerr << #x <<" "; _print(x); cerr << endl;
  26. #else
  27. #define debug(x)
  28. #endif
  29.  
  30. void _print(ll t) {cerr << t;}
  31. void _print(int t) {cerr << t;}
  32. void _print(string t) {cerr << t;}
  33. void _print(char t) {cerr << t;}
  34. void _print(lld t) {cerr << t;}
  35. void _print(double t) {cerr << t;}
  36. void _print(ull t) {cerr << t;}
  37.  
  38. template <class T, class V> void _print(pair <T, V> p);
  39. template <class T> void _print(vector <T> v);
  40. template <class T> void _print(set <T> v);
  41. template <class T, class V> void _print(map <T, V> v);
  42. template <class T> void _print(multiset <T> v);
  43. template <class T, class V> void _print(pair <T, V> p) {cerr << "{"; _print(p.ff); cerr << ","; _print(p.ss); cerr << "}";}
  44. template <class T> void _print(vector <T> v) {cerr << "[ "; for (T i : v) {_print(i); cerr << " ";} cerr << "]";}
  45. template <class T> void _print(set <T> v) {cerr << "[ "; for (T i : v) {_print(i); cerr << " ";} cerr << "]";}
  46. template <class T> void _print(multiset <T> v) {cerr << "[ "; for (T i : v) {_print(i); cerr << " ";} cerr << "]";}
  47. template <class T, class V> void _print(map <T, V> v) {cerr << "[ "; for (auto i : v) {_print(i); cerr << " ";} cerr << "]";}
  48. const int MX = 100000 ;
  49. ll inp[MX + 7];
  50. int main() {
  51. #ifndef ONLINE_JUDGE
  52. freopen("Error.txt", "w", stderr);
  53. #endif
  54. fastio();
  55. ll t;
  56. cin >> t;
  57. while (t--) {
  58. ll n;
  59. cin >> n;
  60. for (ll i = 0; i < n; i++)
  61. cin >> inp[i];
  62. ll ans = 0 ;
  63. set < ll > s ;
  64. int r = 0 , l = 0 ;
  65. int bi = 0 ;
  66. while ( r < n )
  67. {
  68. while ( r < n && !s.count(inp[r] ) ) s.insert(inp[r++]);
  69. s.erase(inp[l++]);
  70. ll lft = r - l + 1 ;
  71. ll add = ( lft * ( lft + 1) ) / 2ll;
  72. ans += add ;
  73. ans -= bi ;
  74. bi = ( lft * (lft - 1) ) / 2ll ;
  75. }
  76. cout << ans << endl;
  77. }
  78.  
  79. return 0;
  80. }
  81.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement