fork download
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <vector>
  4. #include <map>
  5. using namespace std;
  6. int main()
  7. {
  8. freopen("input.inp", "r", stdin);
  9. freopen("output.out", "w", stdout);
  10. long long n;
  11. long long x;
  12. vector<long long> a;
  13. map<long long, long long> d, d1;
  14. cin >> n;
  15. long long l = -1, r = -1, r1 = n, l1 = n;
  16. for (long long i = 0; i < n; i++)
  17. {
  18. cin >> x;
  19. a.push_back(x);
  20. }
  21. for (long long i = 0; i < n; i++)
  22. {
  23. d[a[i]]++;
  24. if (d[a[i]] > 1)
  25. {
  26. l = i;
  27. break;
  28. }
  29. }
  30. for (long long i = n - 1; i >= 0; i--)
  31. {
  32. if (d[a[i]] >= 1)
  33. {
  34. r = i;
  35. break;
  36. }
  37. d[a[i]]++;
  38. }
  39. for (long long i = n - 1; i >= 0; i--)
  40. {
  41. d1[a[i]]++;
  42. if (d1[a[i]] > 1)
  43. {
  44. r1 = i;
  45. break;
  46. }
  47. }
  48. for (long long i = 0; i < n; i++)
  49. {
  50. if (d1[a[i]] >= 1)
  51. {
  52. l1 = i;
  53. break;
  54. }
  55. d1[a[i]]++;
  56. }
  57. if (l == -1)
  58. cout << 0;
  59. else
  60. {
  61. cout << min(r - l + 1, r1 - l1 + 1);
  62. }
  63. }
Time limit exceeded #stdin #stdout 5s 4197480KB
stdin
Standard input is empty
stdout
Standard output is empty