fork download
  1. #include <bits/stdc++.h>
  2. #include <ext/pb_ds/assoc_container.hpp>
  3. #include <ext/pb_ds/tree_policy.hpp>
  4.  
  5. using namespace std;
  6. using namespace __gnu_pbds;
  7. using ll = long long;
  8. using ld = long double;
  9.  
  10. #define all(x) x.begin(),x.end()
  11. #define v(x) vector<x>
  12. #define nl '\n'
  13. #define fxd(x) fixed << setprecision(x)
  14. template<class t> using ordered_set = tree<t, null_type, less<t>, rb_tree_tag, tree_order_statistics_node_update>;
  15. template<class t> using ordered_multiset = tree<t, null_type, less_equal<t>, rb_tree_tag, tree_order_statistics_node_update>;
  16.  
  17.  
  18. int main()
  19. {
  20. ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
  21. int n ; cin >> n;
  22. v(ll) arr(n); for (int i = 0; i < n; i++) cin >> arr[i];
  23.  
  24. ll l =0 , r =0 , mxlen = 0;
  25. // val,freq
  26. map<ll,ll>mp;
  27. for (int r = 0; r < n; r++)
  28. {
  29. mp[arr[r]]++;
  30. if(mp[arr[r]] == 1)
  31. {
  32. mxlen = max(mxlen,r-l+1);
  33. }
  34. else
  35. {
  36. while (mp[arr[r]] > 1)
  37. {
  38. mp[arr[l++]]--;
  39. }
  40.  
  41. }
  42. }
  43. cout << mxlen;
  44. }
Success #stdin #stdout 0s 5304KB
stdin
Standard input is empty
stdout
1