IMohammedNasr

F. Offer

Dec 16th, 2021
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.76 KB | None | 0 0
  1. void solve()
  2. {
  3. ll n, k;
  4. ll sum = 0, MAX = 0, cnt = 0;
  5. cin >> n >> k;
  6. vector<ll> v(n);
  7. map<ll, ll> m;
  8. for (auto &i : v)
  9. cin >> i;
  10. ll f = 0, l = 0;
  11. while (l < n and f < n)
  12. {
  13. if (!m[v[l]] and sum + v[l] <= k)
  14. {
  15. sum += v[l];
  16. m[v[l]]++;
  17. cnt++, l++;
  18. MAX = max(MAX, cnt);
  19. }
  20. else if (m[v[l]] and l < n)
  21. {
  22. cnt++;
  23. m[v[l]]++;
  24. l++;
  25. MAX = max(MAX, cnt);
  26. }
  27. else if (m[v[f]] - 1 == 0)
  28. {
  29. sum -= v[f];
  30. m[v[f++]]--;
  31. cnt--;
  32. }
  33. else
  34. {
  35. f++, cnt--;
  36. }
  37. }
  38. cout << MAX << endl;
  39. }
Advertisement
Add Comment
Please, Sign In to add comment