Submission #1342741

#TimeUsernameProblemLanguageResultExecution timeMemory
1342741blacktulipCrossing (JOI21_crossing)C++20
0 / 100
118 ms41900 KiB
//Hello!..
//dört böler altı artı iki ama ne böler altı ne böler iki
//Başarı, Boş Duranın Hakkı Değil... Koşturanın Hakkıdır. Hakan?
//Ne yapayım, elimden gelen bu :(
//S'il vous plait
#include <bits/stdc++.h>
using namespace std;

typedef long long lo; 

#define fi first
#define se second
#define endl "\n"
#define pb push_back
#define int long long
#define fio() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
#define FOR for(int i=1;i<=n;i++)
#define setrandom mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
#define getrandom(a,b) uniform_int_distribution<int>(a,b)(rng)
#define mid ((start+end)/2)
#define ort ((bas+son)/2)
#define _ << " " <<

const lo inf = 1000000000;
const lo li = 500005;
const lo mod = 1000000007;

int n,m,a[li],k,flag,t;
int cev;
string s[4],ss;
vector<int> v;
map<string,int> vis;

inline string merge(string &s1,string &s2){
	string st;
	for(int i=0;i<n;i++){
		if(s1[i]==s2[i])st+=s1[i];
		else{
			int var=0;
			if(s1[i]=='I' || s2[i]=='I')var|=1;
			if(s1[i]=='J' || s2[i]=='J')var|=2;
			if(s1[i]=='O' || s2[i]=='O')var|=4;
			if(var==3)st+='O';
			if(var==5)st+='J';
			if(var==6)st+='I';
		}
	}
	//~ cerr<<st _ s1 _ s2 _ "AA\n";
	return st;
}

int32_t main(){
	fio();
	cin>>n;
	cin>>s[0]>>s[1]>>s[2];
	vis[s[0]]=1;
	vis[s[1]]=1;
	vis[s[2]]=1;
	string s1=merge(s[0],s[1]);
	string s2=merge(s[0],s[2]);
	string s3=merge(s[1],s[2]);
	vis[merge(s[0],s[1])]=1;
	vis[merge(s[2],s1)]=1;
	vis[merge(s[0],s[2])]=1;
	vis[merge(s[1],s2)]=1;
	vis[merge(s[1],s[2])]=1;
	vis[merge(s[0],s3)]=1;
	cin>>t;
	cin>>ss;
	if(vis[ss])cout<<"Yes\n";
	else cout<<"No\n";
	while(t--){
		int l,r;
		char c;
		cin>>l>>r>>c;l--;r--;
		for(int i=l;i<=r;i++)ss[i]=c;
		cout<<ss<<endl;
		if(vis[ss])cout<<"Yes\n";
		else cout<<"No\n";
	}
	return 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...