斯沃琪(SWQ)的梦
斯沃琪(SWQ)的梦
难度级别:B; 运行时间限制:1000ms; 运行空间限制:256000KB; 代码长度限制:2000000B
试题描述
SWQ建立了一个帝国,她对SWQ帝国秩序感到满意,于是决定启程离开SWQ帝国出去环游世界。在她动身之前,SWQ决定赋予自己SWQ帝国边防军司令WXJ最强大的能量以守护帝国、保卫这里的平衡与和谐。在那个时代,平衡是个梦想。因为有很多奇异的物种拥有各种不稳定的能量,平衡瞬间即被打破。WXJ决定求助于你,帮助他完成这个梦想。
一串数列即表示一个世界的状态。
平衡是指这串数列以升序排列。而从一串无序数列到有序数列需要通过交换数列中的元素来实现。WXJ的能量只能交换向相邻两个数字。他想知道他最少需要交换几次就能使数列有序。
输入
*第1行:为数列中数的个数n
*第2行:为n<=10000个数。表示当前数列的状态。
输出
*表示最少需要交换几次能达到平衡状态。
输入示例
4
2 1 4 3
输出示例
2
其他说明
正当SWQ帝国蒸蒸日上的时候。
搬运公司的老板一脚把睡在天桥底下的SWQ踹了起来,大喊:“快去搬集装箱!”
LJX认为n<=100000
选择排序
1 #include<iostream> 2 using namespace std; 3 int a[100010]; 4 int main() 5 { 6 int n,ans=0; 7 cin>>n; 8 int i,j,x; 9 for(i=0;i<n;i++) 10 { 11 cin>>a[i]; 12 } 13 for(i=0;i<n;i++) 14 { 15 for(j=0;j<n-i-1;j++) 16 { 17 if(a[j]>a[j+1]) 18 { 19 x=a[j]; 20 a[j]=a[j+1]; 21 a[j+1]=x; 22 ans++; 23 } 24 } 25 } 26 cout<<ans; 27 //system("pause"); 28 return 0; 29 }