結果
問題 |
No.2490 Escalator
|
ユーザー |
![]() |
提出日時 | 2023-09-29 22:46:31 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,179 bytes |
コンパイル時間 | 3,283 ms |
コンパイル使用メモリ | 233,600 KB |
最終ジャッジ日時 | 2025-02-17 03:28:12 |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 21 WA * 52 |
ソースコード
#include <bits/stdc++.h> #include <atcoder/convolution> using namespace std; const long long MOD = 998244353; int main(){ int N; cin >> N; vector<int> A(N * 2); for (int i = 0; i < N * 2; i++){ cin >> A[i]; if (A[i] == -1){ A[i] = 0; } } vector<int> B(N * 4); for (int i = 0; i < N * 2; i++){ B[i] = A[i]; B[N * 2 + i] = A[i]; } vector<long long> A1(N * 2), A2(N * 2), A3(N * 2); for (int i = 0; i < N * 2; i++){ A1[i] = A[i]; A2[i] = (long long) A[i] * A[i] % MOD; A3[i] = (long long) A[i] * A[i] * A[i] % MOD; } vector<long long> B1(N * 4), B2(N * 4), B3(N * 4); for (int i = 0; i < N * 4; i++){ B1[i] = B[i]; B2[i] = (long long) B[i] * B[i] % MOD; B3[i] = (long long) B[i] * B[i] * B[i] % MOD;; } vector<long long> A1B3 = atcoder::convolution(A1, B3); vector<long long> A2B2 = atcoder::convolution(A2, B2); vector<long long> A3B1 = atcoder::convolution(A3, B1); bool ok = false; for (int i = N * 2; i < N * 4; i++){ if ((A1B3[i] - A2B2[i] * 2 + A3B1[i] + MOD * 2) % MOD == 0){ ok = true; } } if (ok){ cout << "Yes" << endl; } else { cout << "No" << endl; } }