#include #include #include using mint1 = atcoder::static_modint<818937857>; using mint2 = atcoder::static_modint<850395137>; using mint3 = atcoder::static_modint<907018241>; template std::vector poly_acc(const std::vector& a, R x) { const int n = a.size(); std::vector sum(n + 1); R px = 1; for (int i = 0; i < n; ++i) { sum[i + 1] = sum[i] + R(a[i]) * px; px *= x; } return sum; } int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); int n, q; long long k; std::cin >> n >> q >> k; std::vector a(n); for (auto &e : a) std::cin >> e; std::vector s1 = poly_acc(a, k); std::vector s2 = poly_acc(a, k); std::vector s3 = poly_acc(a, k); while (q--) { int l, r; std::cin >> l >> r; --l; bool ans = s1[l] != s1[r] or s2[l] != s2[r] or s3[l] != s3[r]; std::cout << (ans ? "Yes" : "No") << '\n'; } }