Files
2019-03-15 13:47:54 +04:00

107 lines
2.1 KiB
Java

package chelper;
import io.InputReader;
import io.OutputWriter;
import misc.SimpleSavingChelperSolution;
public class TaskD extends SimpleSavingChelperSolution {
public void solve(int testNumber, InputReader in, OutputWriter out) {
wrapSolve(testNumber, in, out);
}
@Override
public void solve(int testNumber) {
char[] a = in.nextString().toCharArray();
char[] b = in.nextString().toCharArray();
int n = a.length;
int m = b.length;
int q = in.nextInt();
int[] aCumSum1 = new int[n];
int[] bCumSum1 = new int[m];
for (int i = 0; i < n; i++) {
if (i > 0) {
aCumSum1[i] += aCumSum1[i - 1];
}
if (a[i] == 'B' || a[i] == 'C') {
aCumSum1[i]++;
}
}
for (int i = 0; i < m; i++) {
if (i > 0) {
bCumSum1[i] += bCumSum1[i - 1];
}
if (b[i] == 'B' || b[i] == 'C') {
bCumSum1[i]++;
}
}
int[] aCumSum2 = new int[n];
int[] bCumSum2 = new int[m];
for (int i = 0; i < n; i++) {
if (i > 0) {
aCumSum2[i] += aCumSum2[i - 1];
}
if (a[i] == 'A') {
aCumSum2[i]++;
} else {
aCumSum2[i] = 0;
}
}
for (int i = 0; i < m; i++) {
if (i > 0) {
bCumSum2[i] += bCumSum2[i - 1];
}
if (b[i] == 'A') {
bCumSum2[i]++;
} else {
bCumSum2[i] = 0;
}
}
for (int i = 0; i < q; i++) {
int al = in.nextInt() - 1;
int ar = in.nextInt() - 1;
int bl = in.nextInt() - 1;
int br = in.nextInt() - 1;
int x_bc = aCumSum1[ar];
if (al > 0) {
x_bc -= aCumSum1[al - 1];
}
int x_a = aCumSum2[ar];
if (al > 0 && aCumSum1[ar] == aCumSum1[al - 1]) {
x_a -= aCumSum2[al - 1];
}
int y_bc = bCumSum1[br];
if (bl > 0) {
y_bc -= bCumSum1[bl - 1];
}
int y_a = bCumSum2[br];
if (bl > 0 && bCumSum1[br] == bCumSum1[bl - 1]) {
y_a -= bCumSum2[bl - 1];
}
boolean ok;
ok = (x_a >= y_a) && ((x_a - y_a) % 3 == 0);
ok &= (x_bc <= y_bc) && ((y_bc - x_bc) % 2 == 0);
out.print(ok ? '1' : '0');
}
}
}