Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // сумма простая
- #include <iostream>
- #include <string>
- #include <sstream>
- #include <cmath>
- #include <algorithm>
- #include <memory.h>
- #include <stdio.h>
- #include <vector>
- #include <stack>
- #include <deque>
- #include <queue>
- #include <vector>
- #include <set>
- #include <iterator>
- #include <map>
- #include <iomanip>
- #define int long long
- #define fir first
- #define sec second
- #define sp system("pause")
- #define pb push_back
- #define double long double
- #define endl "\n"
- #define un unsigned
- using namespace std;
- int mas[10000005];
- int bas[20000005];
- int cas[20000005];
- int pref[10000000];
- signed main() {
- ios_base::sync_with_stdio();
- cin.tie(0);
- cout.tie(0);
- int n, x, y, q;
- cin >> n >> x >> y >> q;
- mas[0] = q;
- for (int i = 1; i < n; i++)
- {
- mas[i] = (mas[i - 1] * x + y + 65536) % 65536;
- }
- int m;
- cin >> m;
- int z, t;
- cin >> z >> t >> q;
- bas[0] = q;
- cas[0] = q % n;
- for (int i = 1; i < 2 * m; i++)
- {
- bas[i] = (bas[i - 1] * z + t + 1073741824) % 1073741824;
- cas[i] = (bas[i] % n + n) % n;
- }
- pref[0] = mas[0];
- for (int i = 1; i < n; i++)
- {
- pref[i] = pref[i - 1] + mas[i];
- }
- int l, r;
- int ans = 0;
- for (int i = 0; i < m; i++)
- {
- if (2 * i + 1 < 2 * m)
- {
- l = min(cas[2 * i], cas[2 * i + 1]);
- r = max(cas[2 * i], cas[2 * i + 1]);
- }
- if (r < n)
- {
- ans += pref[r];
- if (l > 0)
- {
- ans -= pref[l - 1];
- }
- }
- }
- cout << ans;
- //sp;
- return 0;
- }
- //хороша ли подстрока
- #include <iostream>
- #include <string>
- #include <sstream>
- #include <cmath>
- #include <algorithm>
- #include <memory.h>
- #include <stdio.h>
- #include <vector>
- #include <stack>
- #include <deque>
- #include <queue>
- #include <vector>
- #include <set>
- #include <iterator>
- #include <map>
- #include <iomanip>
- #define int long long
- #define fir first
- #define sec second
- #define sp system("pause")
- #define pb push_back
- #define double long double
- #define endl "\n"
- #define un unsigned
- using namespace std;
- int pref[1000000];
- signed main() {
- ios_base::sync_with_stdio();
- cin.tie(0);
- cout.tie(0);
- string s;
- cin >> s;
- int bal = 0;
- pref[0] = -1;
- if (s[0] == '(')
- {
- pref[0] += 2;
- }
- for (int i = 1; i < s.size(); i++)
- {
- pref[i] = pref[i - 1] - 1;
- if (s[i] == '(')
- {
- pref[i] += 2;
- }
- }
- int t;
- cin >> t;
- for (int i = 0; i < t; i++)
- {
- int l, r;
- cin >> l >> r;
- if (l > 1 && pref[r - 1] - pref[l - 2] == 0)
- {
- cout << 1;
- }
- else if (l == 1 && pref[r - 1] == 0)
- {
- cout << 1;
- }
- else
- {
- cout << 0;
- }
- }
- //sp;
- return 0;
- }
- //рмку
- #include <iostream>
- #include <string>
- #include <sstream>
- #include <cmath>
- #include <algorithm>
- #include <memory.h>
- #include <stdio.h>
- #include <vector>
- #include <stack>
- #include <deque>
- #include <queue>
- #include <vector>
- #include <set>
- #include <iterator>
- #include <map>
- #include <iomanip>
- #define int long long
- #define fir first
- #define sec second
- #define ssp system("pause")
- #define pb push_back
- #define double long double
- #define endl "\n"
- #define un unsigned
- using namespace std;
- signed main() {
- ios_base::sync_with_stdio();
- cin.tie(0);
- cout.tie(0);
- int n;
- cin >> n;
- vector<int> a(n), logs(n + 1);
- for (int i = 0; i < n; i++)
- {
- cin >> a[i];
- }
- logs[1] = 0;
- for (int i = 2; i <= n; i++)
- {
- logs[i] = logs[i / 2] + 1;
- }
- vector<vector<pair<int, int>>> sp(logs[n] + 1, vector<pair<int, int>>(n));
- for (int i = 0; i < n; i++)
- {
- sp[0][i] = { a[i], i };
- }
- for (int level = 1; (1 << level) <= n; level++)
- {
- for (int i = 0; i + (1 << level) <= n; i++)
- {
- if (sp[level - 1][i].first > sp[level - 1][i + (1 << (level - 1))].first)
- {
- sp[level][i] = sp[level - 1][i];
- }
- else
- {
- sp[level][i] = sp[level - 1][i + (1 << (level - 1))];
- }
- }
- }
- int m;
- cin >> m;
- for (int i = 0; i < m; i++)
- {
- int l, r;
- cin >> l >> r;
- l--;
- r--;
- int level = logs[r - l + 1];
- if (sp[level][l] > sp[level][r - (1 << level) + 1])
- {
- cout << sp[level][l].first << ' ' << sp[level][l].second + 1 << '\n';
- }
- else
- {
- cout << sp[level][r - (1 << level) + 1].first << " " << sp[level][r - (1 << level) + 1].second + 1 << endl;
- }
- }
- //ssp;
- return 0;
- }
- //сумма
- #include <iostream>
- #include <string>
- #include <sstream>
- #include <cmath>
- #include <algorithm>
- #include <memory.h>
- #include <stdio.h>
- #include <vector>
- #include <stack>
- #include <deque>
- #include <queue>
- #include <vector>
- #include <set>
- #include <iterator>
- #include <map>
- #include <iomanip>
- #define int long long
- #define fir first
- #define sec second
- #define sp system("pause")
- #define pb push_back
- #define double long double
- #define endl "\n"
- #define un unsigned
- using namespace std;
- vector<int> t, a;
- void build(int v, int tl, int tr) {
- if (tl == tr)
- t[v] = a[tl];
- else
- {
- int tm = (tl + tr) / 2;
- build(v * 2, tl, tm);
- build(v * 2 + 1, tm + 1, tr);
- t[v] = t[v * 2] + t[v * 2 + 1];
- }
- }
- void update(int v, int tl, int tr, int pos, int new_val)
- {
- if (tl == tr)
- t[v] = new_val;
- else
- {
- int tm = (tl + tr) / 2;
- if (pos <= tm)
- update(v * 2, tl, tm, pos, new_val);
- else
- update(v * 2 + 1, tm + 1, tr, pos, new_val);
- t[v] = t[v * 2] + t[v * 2 + 1];
- }
- }
- int sum(int v, int tl, int tr, int l, int r) {
- if (l > r)
- return 0;
- if (l == tl && r == tr)
- return t[v];
- int tm = (tl + tr) / 2;
- return sum(v * 2, tl, tm, l, min(r, tm)) + sum(v * 2 + 1, tm + 1, tr, max(l, tm + 1), r);
- }
- signed main() {
- ios_base::sync_with_stdio(0);
- cin.tie(0);
- cout.tie(0);
- int n, k;
- cin >> n >> k;
- t.resize(4 * n);
- a.resize(n);
- for (int j = 0; j < k; j++) {
- char command;
- cin >> command;
- if (command == 'A') {
- long long i, x;
- cin >> i >> x;
- update(1, 0, n - 1, i - 1, x);
- }
- else if (command == 'Q')
- {
- int l, r;
- cin >> l >> r;
- cout << sum(1, 0, n - 1, l - 1, r - 1) << '\n';
- }
- }
- sp;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment