Advertisement
Guest User

Untitled

a guest
Jul 20th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <climits>
  4. #include <algorithm>
  5. #include <string>
  6. #include <cmath>
  7. #include <utility>
  8. using namespace std;
  9. typedef long long ll;
  10. const ll INF = LLONG_MAX;
  11. int main() {
  12. ll n;
  13. cin >> n;
  14. vector <ll> a(n);
  15. ll len = sqrt(n) + 1;
  16. vector <ll> b(len, INF);
  17. for (ll i = 0; i < n; i++) {
  18. cin >> a[i];
  19. b[i / len] = min(a[i], b[i / len]);
  20. }
  21. string s;
  22. while (cin >> s) {
  23. if (s == "set") {
  24. ll j, x;
  25. cin >> j >> x;
  26. j--;
  27. a[j] = x;
  28. ll i = j / len;
  29. b[i] = INF;
  30. for (ll j = i * len; j < (i + 1) * len && j < a.size(); j++) {
  31. b[i] = min(a[j], b[i]);
  32. }
  33. } else {
  34. ll l, r, minn = INF;
  35. cin >> l >> r;
  36. l--, r--;
  37. for (ll j = l; j <= r;) {
  38. if (j % len == 0 && j + len - 1 <= r) {
  39. minn = min(minn, b[j / len]);
  40. j += len;
  41. } else {
  42. minn = min(minn, a[j]);
  43. j++;
  44. }
  45. }
  46. cout << minn << endl;
  47. }
  48. }
  49. return 0;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement