Submission #1687566


Source Code Expand

#include<bits/stdc++.h>

using namespace std;
using ll = long long;
using ld = long double;
#define rep(i,n) for(int i=0;i<(int)(n);i++)
#define reps(i,s,n) for(int i=(int)(s);i<(int)(n);i++)
const ll mod = 1e9 + 7;
const int INF = 1e9;

int main() {
	cin.sync_with_stdio(false);
	string S, T;
	cin >> S >> T;
	int q;
	cin >> q;
	while (q) {
		q--;
		int a, b, c, d;
		cin >> a >> b >> c >> d;
		a--; b--; c--; d--;
		string s1,s2, t1,t2;
		reps(i, a, b + 1) {
			s1.push_back(S[i]);
		}
		reps(i, c, d + 1) {
			t1.push_back(T[i]);
		}
		bool flag = true;
		while (flag) {
			flag = false;
			rep(i,s1.size()) {
				if (i != s1.size()-1&&s1[i] == s1[i + 1]) {
					s2.push_back((s1[i] == 'A' ? 'B' : 'A'));
					flag = true;
					i++;
				}
				else s2.push_back(s1[i]);
			}
			s1 = s2;
			s2 = {""};
		}
		flag = true;
		while (flag) {
			flag = false;
			rep(i, s1.size()) {
				if (i != s1.size() - 2 && s1[i] == 'A'&&s1[i+1]=='B'&&s1[i+2]=='A') {
					s2.push_back('A');
					flag = true;
					i+=2;
				}
				else if (i != s1.size() - 2 && s1[i] == 'B'&&s1[i + 1] == 'A'&&s1[i + 2] == 'B') {
					s2.push_back('B');
					flag = true;
					i += 2;
				}
				else s2.push_back(s1[i]);
			}
			s1 = s2;
			s2 = { "" };
		}
		flag = true;
		while (flag) {
			flag = false;
			rep(i, t1.size()) {
				if (i != t1.size() - 1 && t1[i] == t1[i + 1]) {
					t2.push_back((t1[i] == 'A' ? 'B' : 'A'));
					flag = true;
					i++;
				}
				else t2.push_back(t1[i]);
			}
			t1 = t2;
			t2 = { "" };
		}
		flag = true;
		while (flag) {
			flag = false;
			rep(i, t1.size()) {
				if (i != t1.size() - 2 && t1[i] == 'A'&&t1[i + 1] == 'B'&&t1[i + 2] == 'A') {
					t2.push_back('A');
					flag = true;
					i += 2;
				}
				else if (i != t1.size() - 2 && t1[i] == 'B'&&t1[i + 1] == 'A'&&t1[i + 2] == 'B') {
					t2.push_back('B');
					flag = true;
					i += 2;
				}
				else t2.push_back(t1[i]);
			}
			t1 = t2;
			t2 = { "" };
		}
		
		//cout << s1 << " " << t1 << endl;
		if (s1 == t1)cout << "YES" << endl;
		else cout << "NO" << endl;
	}
	return 0;
}

Submission Info

Submission Time
Task E - TrBBnsformBBtion
User agis
Language C++14 (GCC 5.4.1)
Score 0
Code Size 2151 Byte
Status TLE
Exec Time 2103 ms
Memory 1000 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 600
Status
AC × 2
AC × 3
TLE × 13
Set Name Test Cases
Sample 0_000.txt, 0_001.txt
All 0_000.txt, 0_001.txt, bound_0.txt, bound_1.txt, bound_2.txt, bound_3.txt, min.txt, rnd_10000_10.txt, rnd_10000_10000.txt, rnd_10000_2.txt, rnd_10_10.txt, rnd_10_10000.txt, rnd_10_2.txt, rnd_2_10.txt, rnd_2_10000.txt, rnd_2_2.txt
Case Name Status Exec Time Memory
0_000.txt AC 1 ms 256 KB
0_001.txt AC 1 ms 256 KB
bound_0.txt TLE 2103 ms 992 KB
bound_1.txt TLE 2103 ms 936 KB
bound_2.txt TLE 2103 ms 1000 KB
bound_3.txt TLE 2103 ms 980 KB
min.txt AC 1 ms 256 KB
rnd_10000_10.txt TLE 2103 ms 960 KB
rnd_10000_10000.txt TLE 2103 ms 932 KB
rnd_10000_2.txt TLE 2103 ms 904 KB
rnd_10_10.txt TLE 2103 ms 920 KB
rnd_10_10000.txt TLE 2103 ms 936 KB
rnd_10_2.txt TLE 2103 ms 924 KB
rnd_2_10.txt TLE 2103 ms 920 KB
rnd_2_10000.txt TLE 2103 ms 932 KB
rnd_2_2.txt TLE 2103 ms 956 KB