Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <iostream>
- #include <cstdio>
- #include <vector>
- #include <cmath>
- #include <string>
- #include <algorithm>
- #include <string>
- #include <deque>
- #include <iomanip>
- #define F first
- #define S second
- using namespace std;
- const long double eps2 = 0.0000005;
- const long double eps1 = 1e-5;
- const long double pi = 3.1415926535897932;
- vector <int> a;
- int d[400010];
- void inc(int v, int l, int r, int i, int c)
- {
- if (l + 1 == r)
- {
- d[v] = c;
- return;
- }
- int m = (l + r) / 2;;
- if (i < m)
- inc(2 * v + 1, l, m, i, c);
- else
- inc(2 * v + 2, m, r, i, c);
- d[v] = d[2 * v + 1] + d[2 * v + 2];
- }
- int findans(int v, int l, int r, bool f)
- {
- int ans = 0;
- int m = (l + r) / 2;
- if (f)
- {
- if (l + 1 == r)
- if (l % 2 == 1)
- return d[v];
- else
- return 0;
- //int ans;
- ans += findans(2 * v + 1, l, m, f);
- ans += findans(2 * v + 2, m, r, f);
- }
- else
- {
- if (l + 1 == r)
- if (l % 2 == 0)
- return d[v];
- else
- return 0;
- ans += findans(2 * v + 1, l, m, f);
- ans += findans(2 * v + 2, m, r, f);
- }
- return ans;
- }
- int main()
- {
- ios_base::sync_with_stdio(0);
- freopen("input.txt", "r", stdin);
- // freopen("output.txt", "w", stdout);
- int n;
- cin >> n;
- //cout << n << endl;
- int x;
- for (int i = 0; i < n; i++)
- {
- cin >> x;
- //cout << x << " * ";
- a.push_back(x);
- inc(0, 0, n, i, x);
- }
- int m;
- cin >> m;
- //cout << m << endl;
- int p, c;
- for (int i = 0; i < m; i++)
- {
- cin >> x;
- if (x == 1)
- {
- cout << min(findans(0, 0, n, 1), findans(0, 0, n, 0)) << endl;
- continue;
- }
- if (x == 2)
- {
- cin >> p >> c;
- p--;
- //cout << p << " " << c << endl;
- inc(0, 0, n, p, c);
- continue;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement