fork download
  1. #include <bits/stdc++.h>
  2. #include <chrono>
  3. using namespace std;
  4. using namespace chrono;
  5. // "AJEET JAIN"----"JAI JINENDRA"
  6. /* "णमो अरिहंताणं",
  7.   "णमो सिद्धाणं",
  8.   "णमो आयरियाणं",
  9.   "णमो उवज्झायाणं",
  10.   "णमो लोए सव्वसाहूणं",
  11.   "",
  12.   "एसो पंच नमोक्कारो, सव्व पावप्पणासणो",
  13.   "मंगलाणं च सव्वेसिं, पडमं हवै मंगलं", */
  14.  
  15.  
  16. // Aliases to op
  17. using ll = long long;
  18. using ull = unsigned long long;
  19. using ld = double;
  20. using vll = vector<ll>;
  21.  
  22.  
  23. // Constants
  24. constexpr ll INF = 4e18;
  25. constexpr ld EPS = 1e-9;
  26. constexpr ll MOD = 1e9 + 7;
  27.  
  28.  
  29.  
  30. // Macros
  31. #define F first
  32. #define S second
  33. #define all(x) begin(x), end(x)
  34. #define allr(x) rbegin(x), rend(x)
  35. #define py cout<<"YES\n";
  36. #define pn cout<<"NO\n";
  37. #define forn(i,n) for(int i=0;i<n;i++)
  38. #define for1(i,n) for(int i=1;i<=n;i++)
  39.  
  40. // #define insert push_back
  41. #define pb push_back
  42. #define MP make_pair
  43. #define endl '\n'
  44.  
  45.  
  46.  
  47. /*
  48.  
  49.   Golden Rule
  50.  
  51.   1) problem is easy
  52.   2) proofs is easy
  53.   3) implementation is easy
  54.  
  55.   /*
  56.   ROUGH --
  57.  
  58.   */
  59.  
  60.  
  61.  
  62. void AJNJ(){
  63. ll n;
  64. cin >> n;
  65. vector<ll> v(n);
  66. for(int i = 0; i < n; i++) cin >> v[i];
  67.  
  68. map<ll,ll> mp;
  69. ll i = 0, j = 0;
  70. ll ans = 0;
  71.  
  72. while(j < n){
  73. if(mp.find(v[j]) == mp.end()){
  74. mp[v[j]] = j;
  75. j++;
  76. ans = max(ans, j - i);
  77. } else {
  78. ll id = mp[v[j]];
  79. while(i <= id){
  80. mp.erase(v[i]);
  81. i++;
  82. }
  83. }
  84. }
  85.  
  86. cout << ans << endl;
  87. }
  88.  
  89.  
  90. int main(){
  91. ios::sync_with_stdio(0);
  92. cin.tie(0);
  93. cout.tie(0);
  94. int T = 1;
  95. cin>>T;
  96. auto start1 = high_resolution_clock::now();
  97. while(T--){
  98. AJNJ();
  99. }
  100. auto stop1 = high_resolution_clock::now();
  101. auto duration = duration_cast<microseconds>(stop1 - start1);
  102. cerr << "Time: " << duration . count() / 1000 << " ms" << endl;
  103.  
  104. return 0;
  105. }
Success #stdin #stdout #stderr 0.28s 35888KB
stdin
Standard input is empty
stdout
1
stderr
Time: 277 ms