Submission #1335763

#TimeUsernameProblemLanguageResultExecution timeMemory
1335763arkanefuryCrossing (JOI21_crossing)C++20
26 / 100
768 ms1114112 KiB
#include <bits/stdc++.h>

using namespace std;
#define pb push_back
#define ins insert
#define lb lower_bound
#define F first
#define S second
#define int long long
#define pii pair<int, int>
#define sz size()
#define in insert
#define len(x) (int)x.size()
#define all(v) v.begin(),v.end()
#define FOR(x, n, m, d) for(int x = n; x <= m; x += d)
#define FORR(x, n, m, d) for(int x = n; x >= m; x -= d)
#define nikita ios_base::sync_with_stdio(0), cin.tie(0);
const int N = 1e6 + 15;
int n, m, x, y, l, r, k, P = 7, mod = 1e9+7, ans, sum, cnt, a[N];
string func(string s, string str){
	FOR(i, 0, s.sz-1, 1){
		if(s[i] != str[i]){
			if(s[i] != 'J' && str[i] != 'J')s[i] = 'J';
			else if(s[i] != 'O' && str[i] != 'O')s[i] = 'O';
			else s[i] = 'I';
		}
	}
	return s;
}
void solve(){
	string s[4], sk;
	vector<string>v;
	cin >> n >> s[1] >> s[2] >> s[3];
	cin >> m >> sk;
	char h;
	map<string, bool>mp;
	FOR(i, 1, 3, 1){
		string sok = s[i];
		FOR(j, 1, 3, 1){
				sok = func(sok, s[j]);
				mp[sok]=1;
		}
		FOR(ok, 1, 3, 1){
			sok = func(sok, s[ok]);
		mp[sok]=1;
		}
	}
	cout << (mp[sk] ? "Yes\n" : "No\n");
	FOR(i, 1, m, 1){
		cin >> l >> r >> h;
		FOR(j, l-1, r-1, 1)sk[j] = h;
		cnt = 0;
		cout << (mp[sk] ? "Yes\n" : "No\n");
	}
}
signed main(){
	nikita
	int t=1;
	// cin >> t;
	while(t--)solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...