#include #include #include #include #include #include #include long long int check(long long int *c ,long long int first,long long int second ,float d) { float sum = 0; for(long long int cc = first;cc<=second;++cc) { sum += (float)(c[cc]*pow(d,cc-first)); } if(sum < 0.00001) return 1; return 0; } int main(){ long long int n; long long int a; long long int b; long long int q; scanf("%lld %lld %lld %lld",&n,&a,&b,&q); float ccc = (float)(-1*b/a); long long int *c = malloc(sizeof(long long int) * n); for(long long int c_i = 0; c_i < n; c_i++){ scanf("%lld",&c[c_i]); } for(long long int a0 = 0; a0 < q; a0++){ long long int queryType; long long int first; long long int second; scanf("%lld %lld %lld",&queryType,&first,&second); if(queryType == 1) { c[first] = second; continue; } else { if(check(c,first,second,ccc) == 1) { printf("Yes\n"); continue; } printf("No\n"); } } return 0; }