using System; using System.Collections.Generic; using System.IO; using System.Linq; class Solution { static void Main(String[] args) { string[] tokens_n = Console.ReadLine().Split(' '); int n = Convert.ToInt32(tokens_n[0]); //sequence length int a = Convert.ToInt32(tokens_n[1]); //coefficient int b = Convert.ToInt32(tokens_n[2]); //coefficient int q = Convert.ToInt32(tokens_n[3]); //num queries //sequence int[] c = Array.ConvertAll(Console.ReadLine().Split(' '), Int32.Parse); for(int a0 = 0; a0 < q; a0++){ string[] tokens_queryType = Console.ReadLine().Split(' '); int queryType = Convert.ToInt32(tokens_queryType[0]); int first = Convert.ToInt32(tokens_queryType[1]); int second = Convert.ToInt32(tokens_queryType[2]); if(queryType == 1){ c[first - 1] = second; } else{ if(n == 1){ Console.WriteLine("Yes"); } else{ int[] remainder = new int[n]; Array.Copy(c, remainder, n); remainder[0] -= a; remainder[1] -= b; double ans = Math.Abs(remainder[0]) / remainder[n-1]; if(ans % 1 == 0){ Console.WriteLine("Yes"); } else{ Console.WriteLine("No"); } } } } } }