UVA 1611
来源:互联网 发布:硬盘开盘数据恢复 编辑:程序博客网 时间:2024/06/10 23:59
#include <bits/stdc++.h>using namespace std;typedef pair<int, int> pii;const int maxn = 1E4 + 10;int inp[maxn], T, n;void change(int l, int r){for (int i = l, j = l + (r - l + 1) / 2; j <= r; j++, i++)swap(inp[i], inp[j]);}int main(int argc, char const *argv[]){cin >> T;while (T--){cin >> n;for (int i = 1; i <= n; i++)cin >> inp[i];std::vector<pii> ans;for (int i = 1; i <= n; i++){int pos = find(inp, inp + n, i + 1) - inp;if (pos == i) continue;if (i + 2 * (pos - i) - 1 <= n){ans.push_back(make_pair(i, i + 2 * (pos - i) - 1));change(i, i + 2 * (pos - i) - 1);}else{ans.push_back(make_pair(i + !((pos - i) & 1), pos));change(i + !((pos - i) & 1), pos);i--;}}cout << ans.size() << endl;for (auto it = ans.begin(); it != ans.end(); it++)cout << it->first << " " << it->second << endl;}return 0;}
0 0
- UVA 1611
- UVa 1611 Crane
- UVa - 1611 - Crane
- uva 1611 - Crane
- uva 1611 Crane
- uva
- UVA
- UVA
- UVA
- uva
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- JavaSE初学笔记之<nio的write事件的深入>
- C语言正数和负数循环右移,左移,把某正数的第m位(从0开始)到n位取反
- 校园招聘笔试总结(转载)
- Material Design学习
- lintcode-423
- UVA 1611
- pta 08-图7 公路村村通 (30分) 最小生成树
- NYOJ746——整数划分(四)
- c++ set的常用用法
- 6.3五大组件之一(服务Service)
- 鼠标经过文本后高亮显示
- 使用ViewFlipper+GestureDetector实现轮播图(APP引导页面)
- HDU 2669 Romantic (扩展欧几里得)
- 升级chrome出现SELinux问题的解决方法