結果
問題 | No.1707 Simple Range Reverse Problem |
ユーザー |
![]() |
提出日時 | 2021-10-15 21:52:45 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,362 bytes |
コンパイル時間 | 2,836 ms |
コンパイル使用メモリ | 245,572 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-09-17 17:26:19 |
合計ジャッジ時間 | 3,203 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 12 WA * 6 |
ソースコード
#include <bits/stdc++.h>using namespace std;void solve(){int n;cin >> n;vector<int> a(2 * n);for (int i = 0; i < 2 * n; i++){cin >> a.at(i);}int turn = -1;if (a.at(0) != 1){puts("No");return;}for (int i = 0; i < 2 * n - 1; i++){if (turn == -1 and a.at(i + 1) - a.at(i) != 1){if (a.at(i + 1) - a.at(i) == -1){turn = a.at(i);break;}else if (a.at(i + 1) - a.at(i) != -n + 1){puts("No");return;}break;}}if (turn == -1){for (int i = 0; i < 2 * n; i++){if (a.at(i) != i % n + 1){puts("No");return;}}puts("Yes");return;}int prev = 0, d = 1;for (int i = 0; i < 2 * n; i++){prev += n + d - 1;prev %= n;prev++;if (a.at(i) != prev){puts("No");return;}if (a.at(i) == turn){d *= -1;}}puts("Yes");}int main(){int t;cin >> t;for (int i = 0; i < t; i++){solve();}return 0;}