結果
問題 | No.1888 Odd Insertion |
ユーザー |
![]() |
提出日時 | 2021-11-07 03:45:53 |
言語 | C++17(gcc12) (gcc 12.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,519 bytes |
コンパイル時間 | 6,769 ms |
コンパイル使用メモリ | 260,716 KB |
最終ジャッジ日時 | 2025-01-25 14:30:21 |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 31 WA * 5 TLE * 1 |
ソースコード
#include <bits/stdc++.h>using namespace std;#include <atcoder/fenwicktree>using namespace atcoder;int N;vector<int> P, Q, T;bool isok(int i){return (Q.at(i) % 2 == T.at(i) % 2);}clock_t start_time;int cnt = 0;void dfs(int i){if (clock() - start_time >= 1900000){cout << "No" << endl;exit(0);}if (i == 0){if (isok(i)){vector<int> X(N), Y(N);for (int i = 0; i < N; i++){X.at(i) = P.at(Q.at(i));Y.at(i) = Q.at(i) - T.at(i);}reverse(X.begin(), X.end());reverse(Y.begin(), Y.end());cout << "Yes" << endl;for (int i = 0; i < N; i++){cout << X.at(i) + 1 << " " << Y.at(i) + 1 << endl;}exit(0);}return;}if (isok(i))dfs(i - 1);swap(Q.at(i - 1), Q.at(i));swap(T.at(i - 1), T.at(i));if (Q.at(i - 1) < Q.at(i))T.at(i)++;elseT.at(i - 1)--;if (isok(i))dfs(i - 1);swap(Q.at(i - 1), Q.at(i));swap(T.at(i - 1), T.at(i));if (Q.at(i - 1) < Q.at(i))T.at(i)++;elseT.at(i - 1)--;}int main(){start_time = clock();cin >> N;P.resize(N);for (int i = 0; i < N; i++){cin >> P.at(i);P.at(i)--;}Q.resize(N);for (int i = 0; i < N; i++){Q.at(P.at(i)) = i;}reverse(Q.begin(), Q.end());fenwick_tree<int> fw(N);T.resize(N);for (int i = 0; i < N; i++){T.at(i) = fw.sum(0, Q.at(i));fw.add(Q.at(i), 1);}dfs(N - 1);cout << "No" << endl;}