結果
問題 | 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;}