Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <climits>
- #include <algorithm>
- #include <string>
- #include <cmath>
- #include <utility>
- using namespace std;
- typedef long long ll;
- const ll INF = LLONG_MAX;
- int main() {
- ll n;
- cin >> n;
- vector <ll> a(n);
- ll len = sqrt(n) + 1;
- vector <ll> b(len, INF);
- for (ll i = 0; i < n; i++) {
- cin >> a[i];
- b[i / len] = min(a[i], b[i / len]);
- }
- string s;
- while (cin >> s) {
- if (s == "set") {
- ll j, x;
- cin >> j >> x;
- j--;
- a[j] = x;
- ll i = j / len;
- b[i] = INF;
- for (ll j = i * len; j < (i + 1) * len && j < a.size(); j++) {
- b[i] = min(a[j], b[i]);
- }
- } else {
- ll l, r, minn = INF;
- cin >> l >> r;
- l--, r--;
- for (ll j = l; j <= r;) {
- if (j % len == 0 && j + len - 1 <= r) {
- minn = min(minn, b[j / len]);
- j += len;
- } else {
- minn = min(minn, a[j]);
- j++;
- }
- }
- cout << minn << endl;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement