#include #include #include #include using namespace std; using namespace atcoder; using ll = long long; using pll = pair; int main() { ll n, q, k; cin >> n >> q >> k; vector a(n); for (ll i = 0; i < n; i++) { cin >> a[i]; } reverse(a.begin(), a.end()); vector l(q); vector r(q); for (ll i = 0; i < q; i++) { cin >> l[i] >> r[i]; ll rev_l = n - r[i] + 1; ll rev_r = n - l[i] + 1; l[i] = rev_l; r[i] = rev_r; } ll mod1 = 998244853; ll mod2 = 1000000009; ll mod3 = 1000000007; vector pow_h1(n + 1); pow_h1[0] = 1; for (ll i = 0; i < n; i++) { pow_h1[i + 1] = (pow_h1[i] * (k % mod1)) % mod1; } vector pow_h2(n + 1); pow_h2[0] = 1; for (ll i = 0; i < n; i++) { pow_h2[i + 1] = (pow_h2[i] * (k % mod2)) % mod2; } vector pow_h3(n + 1); pow_h3[0] = 1; for (ll i = 0; i < n; i++) { pow_h3[i + 1] = (pow_h3[i] * (k % mod3)) % mod3; } vector hsum1(n + 1); hsum1[0] = 0; for (ll i = 0; i < n; i++) { hsum1[i + 1] = (hsum1[i] * (k % mod1) + (a[i] % mod1 + mod1) % mod1) % mod1; } vector hsum2(n + 1); hsum2[0] = 0; for (ll i = 0; i < n; i++) { hsum2[i + 1] = (hsum2[i] * (k % mod2) + (a[i] % mod2 + mod2) % mod2) % mod2; } vector hsum3(n + 1); hsum3[0] = 0; for (ll i = 0; i < n; i++) { hsum3[i + 1] = (hsum3[i] * (k % mod3) + (a[i] % mod3 + mod3) % mod3) % mod3; } for (ll i = 0; i < q; i++) { ll hval1 = (hsum1[r[i]] + mod1 - (hsum1[l[i] - 1] * pow_h1[r[i] - l[i]]) % mod1) % mod1; ll hval2 = (hsum2[r[i]] + mod2 - (hsum2[l[i] - 1] * pow_h2[r[i] - l[i]]) % mod2) % mod2; ll hval3 = (hsum3[r[i]] + mod3 - (hsum3[l[i] - 1] * pow_h3[r[i] - l[i]]) % mod3) % mod3; if (hval1 == 0 && hval2 == 0 && hval3 == 0) { cout << "No" << endl; } else { cout << "Yes" << endl; } } }