This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define index int mid=(a+b)/2,le=2*node+1,ri=2*node+2;
using namespace std;
typedef long long ll;
const int MAX_N=2e5+10;
const int MAX_P=MAX_N*4;
int tr[MAX_P];
char la[MAX_P];
void init(int node,int a,int b){
if(a==b){
tr[node]=0;
la[node]='#';
return;
}
index;
init(le,a,mid);
init(ri,mid+1,b);
tr[node]=0;
la[node]='#';
}
void propagar(int node,int a,int b){
if(la[node]=='#') return;
tr[node]=la[node];
char aux=la[node];
la[node]='#';
if(a==b) return;
index;
la[le]=aux;
la[ri]=aux;
}
void update(int node,int a,int b,int l,int r,int val){
propagar(node,a,b);
if(l>b || r<a) return;
if(l<=a && r>=b){
la[node]=val;
propagar(node,a,b);
return;
}
index;
update(le,a,mid,l,r,val);
update(ri,mid+1,b,l,r,val);
}
int query(int node,int a,int b,int l,int r){
propagar(node,a,b);
if(l>b || r<a) return 0;
if(l<=a && r>=b){
return tr[node];
}
index;
return query(le,a,mid,l,r)+query(ri,mid+1,b,l,r);
}
int main(){
int n;
cin>>n;
string a,b,c;
cin>>a>>b>>c;
init(0,0,n-1);
int q;
cin>>q;
string y;
cin>>y;
if(y==a) cout<<"Yes\n";
else cout<<"No\n";
for(int i=0;i<q;i++){
int l,r;
char x;
cin>>l>>r>>x;
l--; r--;
for(int j=l;j<=r;j++){
y[j]=x;
}
if(y==a) cout<<"Yes\n";
else cout<<"No\n";
}
}
Compilation message (stderr)
Main.cpp: In function 'void propagar(int, int, int)':
Main.cpp:2:19: warning: unused variable 'mid' [-Wunused-variable]
2 | #define index int mid=(a+b)/2,le=2*node+1,ri=2*node+2;
| ^~~
Main.cpp:27:3: note: in expansion of macro 'index'
27 | index;
| ^~~~~
# | 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... |