Guest User

Untitled

a guest
May 8th, 2026
26
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.02 KB | None | 0 0
  1. #pragma GCC optimize("Ofast")
  2. #pragma GCC optimize("O3")
  3. #pragma GCC optimize("unroll-loops")
  4. #include <bits/stdc++.h>
  5. using namespace std;
  6. #define int long long
  7. #define ld long double
  8. #define pb push_back
  9. #define f first
  10. #define s second
  11. const int N = 2e5 + 5;
  12. int n, q, x, a[N], pref[N], suff[N];
  13. bool ans[N];
  14. vector <pair <int, int>> vec[N];
  15. void rec (int l, int r) {
  16. if (l >= r) {
  17. return;
  18. }
  19. int m = (l + r) / 2;
  20. pref[m + 1] = a[m + 1] % x;
  21. for (int i = m + 2; i <= r; ++i) {
  22. pref[i] = pref[i - 1] * a[i] % x;
  23. }
  24. suff[m] = a[m];
  25. for (int i = m - 1; i >= l; --i) {
  26. suff[i] = suff[i + 1] * a[i] % x;
  27. }
  28. for (int i = l; i <= m; ++i) {
  29. while (!vec[i].empty()) {
  30. auto [R, id] = vec[i].back();
  31. if (m + 1 <= R) {
  32. if (suff[i] * pref[R] % x) {
  33. ans[id] = 0;
  34. } else {
  35. ans[id] = 1;
  36. }
  37. vec[i].pop_back();
  38. } else {
  39. break;
  40. }
  41. }
  42. }
  43. rec(l, m);
  44. rec(m + 1, r);
  45. }
  46. void solve () {
  47. cin >> n >> x;
  48. for (int i = 1; i <= n; ++i) {
  49. cin >> a[i];
  50. }
  51. cin >> q;
  52. for (int i = 1; i <= q; ++i) {
  53. int l, r;
  54. cin >> l >> r;
  55. if (l == r) {
  56. if (a[l] % x) {
  57. ans[i] = 0;
  58. } else {
  59. ans[i] = 1;
  60. }
  61. } else {
  62. vec[l].pb({r, i});
  63. }
  64. }
  65. for (int i = 1; i <= n; ++i) {
  66. sort(vec[i].begin(), vec[i].end());
  67. }
  68. rec(1, n);
  69. for (int i = 1; i <= q; ++i) {
  70. if (ans[i]) {
  71. cout << "Yes\n";
  72. } else {
  73. cout << "No\n";
  74. }
  75. }
  76. for (int i = 1; i <= n; ++i) {
  77. vec[i].clear();
  78. }
  79. }
  80. signed main() {
  81. ios_base::sync_with_stdio(0);
  82. cin.tie(0);
  83. cout.tie(0);
  84. int t = 1;
  85. cin >> t;
  86. while (t--) {
  87. solve();
  88. }
  89.  
  90. return 0;
  91. }
Advertisement
Add Comment
Please, Sign In to add comment