結果

問題 No.2592 おでぶなおばけさん 2
ユーザー ochiaigawaochiaigawa
提出日時 2023-12-20 12:17:33
言語 C++17(gcc12)
(gcc 12.3.0 + boost 1.87.0)
結果
AC  
実行時間 242 ms / 2,500 ms
コード長 1,046 bytes
コンパイル時間 2,240 ms
コンパイル使用メモリ 210,016 KB
実行使用メモリ 24,448 KB
最終ジャッジ日時 2024-09-27 09:47:09
合計ジャッジ時間 21,760 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 83
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
using namespace std;
vector<long long> m = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97};
const int sz = m.size();
int main() {
  cin.tie(0); cout.tie(0);
  ios::sync_with_stdio(false);
  int N, Q;
  long long K;
  cin >> N >> Q >> K;
  vector<long long> A(N);
  for(int i = 0; i < N; i++) {
    cin >> A[i];
  }
  vector<vector<long long>> C(sz, vector<long long>(N + 1));
  vector<long long> p(sz, 1);
  vector<long long> k(sz);
  for(int i = 0; i < sz; i++) {
    k[i] = K % m[i];
  }
  for(int i = 0; i < N; i++) {
    for(int j = 0; j < sz; j++) {
      C[j][i + 1] = (C[j][i] + A[i] % m[j] * p[j] % m[j] + m[j]) % m[j];
      p[j] = p[j] * k[j] % m[j];
    }
  }
  while(Q--) {
    int L, R;
    cin >> L >> R;
    --L;
    bool fn = false;
    for(int i = 0; i < sz; i++) {
      if(C[i][R] - C[i][L] != 0) {
        fn = true;
      }
    }
    cout << (fn ? "Yes\n" : "No\n");
  }
  return 0;
}
0