2014-11-20 22:41:06
总结:这场cf总共6题,比赛艹了四题,成功帮助绿名小号回蓝-。-‘,赛后补完。
A:问排序的交换方案,并输出,这种模拟题在cf不少见,就是比谁更暴力!
1 /************************************************************************* 2 > File Name: a.cpp 3 > Author: Nature 4 > Mail: 564374850@qq.com 5 > Created Time: Mon 17 Nov 2014 11:37:05 PM CST 6 ************************************************************************/ 7 8 #include <cstdio> 9 #include <cstring> 10 #include <cstdlib> 11 #include <cmath> 12 #include <vector> 13 #include <map> 14 #include <set> 15 #include <stack> 16 #include <queue> 17 #include <iostream> 18 #include <algorithm> 19 using namespace std; 20 #define lp (p << 1) 21 #define rp (p << 1|1) 22 #define getmid(l,r) (l + (r - l) / 2) 23 #define MP(a,b) make_pair(a,b) 24 typedef long long ll; 25 const int INF = 1 << 30; 26 27 int n; 28 int t[3010]; 29 int ans[3010][2],cnt; 30 31 int main(){ 32 scanf("%d",&n); 33 for(int i = 1; i <= n; ++i){ 34 scanf("%d",t + i); 35 } 36 37 for(int i = 1; i <= n; ++i){ 38 int tmin = INF,pos; 39 for(int j = i; j <= n; ++j){ 40 if(t[j] < tmin){ 41 tmin = t[j]; 42 pos = j; 43 } 44 } 45 if(pos != i){ 46 int tmp = t[i]; 47 t[i] = t[pos]; 48 t[pos] = tmp; 49 ans[++cnt][0] = i; 50 ans[cnt][1] = pos; 51 } 52 } 53 printf("%d\n",cnt); 54 for(int i = 1; i <= cnt; ++i){ 55 printf("%d %d\n",ans[i][0] - 1,ans[i][1] - 1); 56 } 57 return 0; 58 }