結果
問題 | No.326 あみだますたー |
ユーザー |
|
提出日時 | 2016-07-20 17:08:46 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 11 ms / 2,000 ms |
コード長 | 825 bytes |
コンパイル時間 | 838 ms |
コンパイル使用メモリ | 76,104 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-08 00:27:28 |
合計ジャッジ時間 | 2,175 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 26 |
ソースコード
#include <iostream> #include <cstdio> #include <vector> #include <algorithm> #include <utility> #include <list> using namespace std; void show(vector<int> &v) { for (auto e : v) { cout << e << " "; } cout << endl; } int main() { int n, k; cin >> n >> k; vector<int> x(k), y(k), a(n); for (int i = 0; i < k; i++) { cin >> x[i]; cin >> y[i]; x[i]--; y[i]--; } for (int i = 0; i < n; i++) { cin >> a[i]; a[i]--; } for (int i = 0; i < k; i++) { swap(a[x[i]], a[y[i]]); } // show(a); list<int> xx; for (int i = 0; i < n; i++) { int pos = find(a.begin(), a.end(), i) - a.begin(); while (pos > i) { swap(a[pos], a[pos-1]); xx.emplace_back(pos-1 + 1); pos--; } } // show(a); cout << xx.size() << endl; for (auto e : xx) { cout << e << " " << e + 1 << endl; } return 0; }