#!/bin/python3 mod = 1000000007 import sys def gcd(a,b): if a == 0: return b else: return gcd(b%a,a) # g,n,m = egcd(a,b) <==> a*n + b*m == g def egcd(a,b): if a == 0: return b,0,1 else: g, x, y = egcd(b % a, a) return g, y-(b//a)*x, x # a = modinv(x,n) <==> a*x % n == 1 def modinv(x,n): g,inv,_ = egcd(x,n) if g == 1: return inv % n def polydiv(p,q): # ax * b b,a = q ib = modinv(b,mod) ia = modinv(a,mod) if ib and ia: r = [None]*(len(p)-1) r[0] = (p[0]*ib) % mod for i in range(1,len(r)): r[i] = (p[i]-r[i-1]*a)*ib % mod if p[-1] == (r[-1]*a)%mod: print('Yes') else: print('No') # P - R*Q mod 10**9 + 7 == 0 # p[0] == r[0]*b mod 10**9 + 7 # p[1] - r[0]*a == r[1]*b mod 10**9 + 7 # p[2] == r[1]*a + r[2]*b mod 10**9 + 7 # p[3] == r[2]*a + r[3]*b mod 10**9 + 7 # p[4] == r[3]*a + r[4]*b mod 10**9 + 7 # p[6] == r[4]*a + r[5]*b mod 10**9 + 7 # ... # p[n] == r[n]*a mod 10**9 + 7 else: print('No') n,a,b,q = input().strip().split(' ') n,a,b,q = [int(n),int(a),int(b),int(q)] c = list(map(int, input().strip().split(' '))) for a0 in range(q): qtype,first,second = input().strip().split(' ') qtype,first,second = [int(qtype),int(first),int(second)] l,r = first,second i,x = first,second # if qtype == 1: c[i-1] = x else: polydiv(c[l:r], [b,a]) # your code goes here