#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define mod 1000000007 long long int powe(int a,int b){ if(b==1){ return a%mod; } else if(b==0) return 1; long long int x=powe(a,b/2)%mod; if(b%2) { return ((((x%mod)*x)%mod)*a)%mod; } else return ((x%mod)*x)%mod; } int main(){ int n; int a; int b; int q; cin >> n >> a >> b >> q; vector c(n); for(int c_i = 0; c_i < n; c_i++){ cin >> c[c_i]; } for(int a0 = 0; a0 < q; a0++){ int t; int f; int s; cin >> t >> f >> s; if(t==1){ c[f]=s; } else if(t==2){ long long int sum=0,x=0,y=s-f; for(int i=f;i<=s;i++){ sum+=(((c[i]*(powe(a,y)))%mod)*powe(-b,x)%mod);x++;y--; } if(sum==0) cout<<"Yes\n"; else cout<<"No\n"; } // your code goes here } return 0; }