10929 | 2024-04-19 20:17:25 | zsombor | Túlcsordulás | cpp17 | Elfogadva 100/100 | 171ms | 17728 KiB |
#include <iostream>
#include <vector>
using namespace std;
using ull = unsigned long long;
int n, q, x, y, l;
string a, b;
vector <ull> pwr(4e5, 1);
vector <ull> h(4e5, 0);
ull hsh(int L, int R) {
L--;
ull ret = h[R];
if (L > -1) ret -= h[L] * pwr[R - L];
return ret;
}
bool check(int M) {
return hsh(x, x + M - 1) == hsh(y, y + M - 1);
}
void solve() {
cin >> x >> y >> l;
y += n;
int L = 0, R = l + 1, M;
while (R - L > 1) {
M = (L + R) / 2;
check(M) ? L = M : R = M;
}
cout << (R > l || a[x + R - 1] == '0' ? "1 " : "0 ");
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> n >> a >> b >> q;
for (char c : b) a.push_back('1' - (c - '0'));
for (int i = 1; i < 2 * n; i++) pwr[i] = pwr[i - 1] * 3;
h[0] = a[0] - '0' + 1;
for (int i = 1; i < 2 * n; i++) h[i] = h[i - 1] * 3 + (a[i] - '0' + 1);
while (q--) solve();
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
subtask1 | 0/0 | ||||||
1 | Elfogadva | 7ms | 14212 KiB | ||||
2 | Elfogadva | 7ms | 14404 KiB | ||||
subtask2 | 40/40 | ||||||
3 | Elfogadva | 7ms | 14620 KiB | ||||
4 | Elfogadva | 7ms | 14836 KiB | ||||
5 | Elfogadva | 8ms | 15044 KiB | ||||
6 | Elfogadva | 7ms | 15384 KiB | ||||
7 | Elfogadva | 7ms | 15332 KiB | ||||
8 | Elfogadva | 8ms | 15412 KiB | ||||
9 | Elfogadva | 8ms | 15336 KiB | ||||
subtask3 | 30/30 | ||||||
10 | Elfogadva | 7ms | 15340 KiB | ||||
11 | Elfogadva | 20ms | 15488 KiB | ||||
12 | Elfogadva | 63ms | 16444 KiB | ||||
13 | Elfogadva | 64ms | 16704 KiB | ||||
14 | Elfogadva | 118ms | 17280 KiB | ||||
15 | Elfogadva | 162ms | 17256 KiB | ||||
16 | Elfogadva | 159ms | 17252 KiB | ||||
17 | Elfogadva | 163ms | 17456 KiB | ||||
subtask4 | 30/30 | ||||||
18 | Elfogadva | 12ms | 15764 KiB | ||||
19 | Elfogadva | 34ms | 17488 KiB | ||||
20 | Elfogadva | 57ms | 16512 KiB | ||||
21 | Elfogadva | 97ms | 17404 KiB | ||||
22 | Elfogadva | 171ms | 17588 KiB | ||||
23 | Elfogadva | 156ms | 17592 KiB | ||||
24 | Elfogadva | 162ms | 17560 KiB | ||||
25 | Elfogadva | 159ms | 17564 KiB | ||||
26 | Elfogadva | 167ms | 17588 KiB | ||||
27 | Elfogadva | 163ms | 17588 KiB | ||||
28 | Elfogadva | 158ms | 17728 KiB |