#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define ll long long #define forn(i, n) for(ll i=0; i #define si set #define mp make_pair #define pb push_back const unsigned int MOD = 1000000007; const double key = 2.22045e-016; double ipow(double base, int exp) { double result = 1; while (exp) { if (exp & 1) result *= base; exp >>= 1; base *= base; } return result; } int main() { ll n, a, b, q, arr[100100]; cin >> n >> a >> b >> q; forn(i, n) cin >> arr[i]; double x = (double) -b / a; while (q--) { ll m, l, r; cin >> m >> l >> r; if (m == 1) { arr[l] = r; } else { double total = 0; ll power = 0; ll xs = 1; for (ll i = l; i <= r; ++i) { total += (double)arr[i] * xs; xs*=x; } if (total < key) cout << "Yes\n"; else cout << "No\n"; } } cout << '\n'; return 0; }