#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define f first
#define s second
#define pii pair<int, int>
#define all(v) v.begin(), v.end()
#define pb push_back
#define int ll
struct test
{
int n;
map<pii, int> val;
vector<int> op(vector<int> &s1, vector<int> &s2)
{
vector<int> res(n);
for (int i = 0; i < n; ++i)
res[i] = val[{s1[i], s2[i]}];
return res;
}
void solve()
{
cin >> n;
vector<vector<int>> strs(3, vector<int>(n));
map<char, int> letter;
letter['J'] = 0;
letter['O'] = 1;
letter['I'] = 2;
for (int i = 0; i < 3; ++i)
{
for (int pos = 0; pos < n; ++pos)
{
char x;
cin >> x;
strs[i][pos] = letter[x];
}
}
for (int i = 0; i < 3; ++i)
for (int j = 0; j < 3; ++j)
{
val[{i, j}] = i;
if (i != j)
for (int k = 0; k < 3; ++k)
if (k != i and k != j)
val[{i, j}] = k;
}
for (int i = 0; i < strs.size(); ++i)
for (int j = 0; j < i; ++j)
{
auto cur = op(strs[i], strs[j]);
bool good = true;
for (int k = 0; k < strs.size(); ++k)
if (cur == strs[k])
good = false;
if (good)
strs.pb(cur);
}
// for (auto el : strs)
// {
// for (int i = 0; i < n; ++i)
// cout << el[i] << " ";
// cout << "\n";
// }
int q;
cin >> q;
vector<int> curT(n);
for (int i = 0; i < n; ++i)
{
char x;
cin >> x;
curT[i] = letter[x];
}
{
bool good = false;
for (int i = 0; i < strs.size(); ++i)
if (curT == strs[i])
good = true;
cout << (good ? "Yes" : "No") << "\n";
}
for (int i = 0; i < q; ++i)
{
int l, r, x;
cin >> l >> r;
{
char bf;
cin >> bf;
x = letter[bf];
}
--l, --r;
for (int i = l; i <= r; ++i)
curT[i] = x;
{
bool good = false;
for (int i = 0; i < strs.size(); ++i)
if (curT == strs[i])
good = true;
cout << (good ? "Yes" : "No") << "\n";
}
}
}
};
main()
{
test t;
t.solve();
}
컴파일 시 표준 에러 (stderr) 메시지
Main.cpp:114:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
114 | main()
| ^~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |