Submission #1280343

#TimeUsernameProblemLanguageResultExecution timeMemory
1280343am_aadvikCrossing (JOI21_crossing)C++20
26 / 100
7090 ms3088 KiB
#include <iostream>
#include <map>
#include<vector>
using namespace std;

string op(string& a, string& b) {
	string res = "", q = "JOI";
	for (int i = 0; i < a.length(); ++i)
		if (a[i] == b[i]) res += a[i];
		else
			for (auto x : q)
				if ((a[i] != x) && (b[i] != x))
					res += x;
	return res;
}
void solve(string& s, vector<string>& a) {
	for (auto x : a)
		if (s == x) { cout << "Yes" << endl; return; }
	cout << "No" << endl;
}
int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	int n; cin >> n;
	vector<string> a(3);
	cin >> a[0] >> a[1] >> a[2];
	map<string, bool> mp;
	for (auto x : a) mp[x] = 1;
	while (1) {
		bool c = 0;
		for (auto x : a) {
			for (auto y : a) {
				auto r = op(x, y);
				if (!mp[r]) { c = 1, a.push_back(r), mp[r] = 1; break; }
			}
			if (c) break;
		}
		if (!c) break;
	}
	if (a.size() > 100) cout << 4 / 0;
	int q; cin >> q;
	string s; cin >> s;
	solve(s, a);
	while (q--) {
		int l, r; cin >> l >> r; --l, --r;
		char c; cin >> c;
		for (int i = l; i <= r; ++i) s[i] = c;
		solve(s, a);
	}
}

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:40:39: warning: division by zero [-Wdiv-by-zero]
   40 |         if (a.size() > 100) cout << 4 / 0;
      |                                     ~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...