IMohammedNasr

Untitled

May 11th, 2022
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.87 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define cin(v)        \
  4.     for (auto &i : v) \
  5.         cin >> i;
  6. #define cout(v)       \
  7.     for (auto &i : v) \
  8.         cout << i << " ";
  9. #define br cout << '\n';
  10. #define ll long long
  11. #define ull unsigned long long
  12. #define all(v) v.begin(), v.end()
  13. #define rall(v) v.rbegin(), v.rend()
  14. #define MOD 1000000007
  15. #define Time cerr << "Time Taken: " << (float)clock() / CLOCKS_PER_SEC << " Secs" \
  16.                   << "\n";
  17.  
  18. void Warding()
  19. {
  20.     ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
  21. #ifndef ONLINE_JUDGE
  22.     freopen("input.txt", "r", stdin), freopen("output.txt", "w", stdout);
  23. #endif
  24. }
  25. ll n;
  26. vector<ll> v, ans;
  27. vector<ll> m(2 * 1e5 + 5, 0);
  28. map<ll, ll> memo;
  29.  
  30. bool is_valid(int i)
  31. {
  32.     return i >= 0 and i < n;
  33. }
  34.  
  35. // int dp(int i, int cnt)
  36. // {
  37. //     if (!is_valid(i))
  38. //         return 0;
  39. //     if (memo[i] != 0)
  40. //         return memo[i];
  41. //     if (i == n - 1)
  42. //     {
  43. //         return cnt + 1;
  44. //     }
  45. //     if (m[v[i]] > i)
  46. //     {
  47. //         return memo[i] = 1 + dp(m[v[i]], cnt + 1);
  48. //     }
  49. //     else
  50. //     {
  51. //         return memo[i] = 1 + dp(i + 1, cnt + 1);
  52. //     }
  53. // }
  54.  
  55. void solve()
  56. {
  57.     ll cnt = 0, Minn = INT_MAX;
  58.     cin >> n;
  59.     v.resize(n);
  60.     vector<ll> m2(2 * 1e5 + 5, 0);
  61.     map<pair<int, int>, int> close;
  62.     for (int i = 0; i < n; i++)
  63.     {
  64.         cin >> v[i];
  65.         m2[v[i]]++;
  66.         m[v[i]] = i;
  67.     }
  68.     int j = 0;
  69.     for (int i = 0; i < n; i++)
  70.     {
  71.         if (m2[v[i]] > 1)
  72.         {
  73.             ll holder = (m2[v[i]] - 1) + ((n - 1) - m[v[i]]) + j;
  74.             Minn = min(Minn, holder);
  75.         }
  76.         j++;
  77.     }
  78.     Minn = min(Minn, n - 1);
  79.     cout << Minn << '\n';
  80. }
  81.  
  82. int main()
  83. {
  84.     Warding();
  85.     int t = 1;
  86.     cin >> t;
  87.     while (t--)
  88.     {
  89.         solve();
  90.     }
  91.     Time
  92. }
Advertisement
Add Comment
Please, Sign In to add comment