#include using namespace std; struct node { float x,y; }; node roots(int n,int a,int b,int c) { node N; float p = (-b+sqrt(b*b-4*a*c))/(2*a); float q = (b+sqrt(b*b-4*a*c))/(2*a); N.x = p; N.y = q; return N; } 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 queryType; int first; int second; cin >> queryType >> first >> second; if(queryType==1) { c[first]=second; } else { node N = roots(n,c[2],c[1],c[0]); bool flag = false; float r = N.x; float l = N.y; if(r==b/a ||l==b/a)flag=true; if(flag)cout<<"Yes"<