結果
問題 | No.326 あみだますたー |
ユーザー |
![]() |
提出日時 | 2015-12-19 01:15:13 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 11 ms / 2,000 ms |
コード長 | 1,357 bytes |
コンパイル時間 | 1,790 ms |
コンパイル使用メモリ | 165,992 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-07 23:18:35 |
合計ジャッジ時間 | 3,265 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 26 |
ソースコード
#define _USE_MATH_DEFINES#define _CRT_SECURE_NO_WARNINGS#include "bits/stdc++.h"#define rep(i,n) for(int i = 0;i < n;i++)#define REP(i,n,k) for(int i = n;i < k;i++)#define P(p) cout<<(p)<<endl;#define pi 3.1415926535using namespace std;typedef long long ll;typedef unsigned long long ull;int dx[] = { 0, 1, 0, -1 };int dy[] = { -1, 0, 1, 0 };unsigned long long sttoi(std::string str) {unsigned long long ret;std::stringstream ss; ss << str;ss >> ret;return ret;}ll gcd(ll a, ll b){if (b > a)swap(a, b);if (b == 0) return a;return gcd(b, a%b);}void solve() {int n, k;cin >> n >> k;int T[101],ans[101];queue<pair<int, int> > que;for (int i = 1; i <= n; i++){T[i] = i;}rep(i, k){int x, y;cin >> x >> y;swap(T[x], T[y]);}rep(i, n){int a;cin >> a;ans[a] = i+1;}for (int i = 1; i <= n; i++){if (T[i] == ans[i])continue;for (int j = i; j <= n; j++){if (T[j] == ans[i]){for (int k = i; k < j; k++){swap(T[k], T[k+1]);que.push(make_pair(k, k + 1));}if (j - i > 1){for (int k = j - 2; k >= i; k--){swap(T[k], T[k + 1]);que.push(make_pair(k, k + 1));}}}}}P(que.size());while (!que.empty()){cout << que.front().first << " " << que.front().second << endl;que.pop();}}int main() {solve();return 0;}