0
已解决
题目描述 Description
体育课上,老师将全班的同学(3*n个人)分成三个队伍1,2,3 各自按照身高进行排序(队伍1、2、3已经有序)。老师准备通过插队的方式,将三个队伍合并成一个按照身高升序的队伍。 每次先从队伍1中选出一个人放入队伍2中,再从队伍3中选出一个人放入队伍2中,请你编程帮老师算一算,在第m次后队伍的顺序是怎样的。
输入描述 Input Description
第一行输入两个整数n,m(n<=4000,m<=8000)
第二行输入n个空格隔开的整数,表示队伍1的序列
第三行输入n个空格隔开的整数,表示队伍2的序列
第四行输入n个空格隔开的整数,表示队伍3的序列
输出描述 Output Description
输出第m次插队后的队伍2
样例输入 Sample Input
5 3
1 3 5 7 9
2 4 6 8 10
11 12 13 14 15
样例输出 Sample Output
1 2 3 4 6 8 10 11
求思路和核心代码!!!
0
已采纳
- for(int i=n+1;i<=n+2*n;i+=2) cin>>a[i];
- for(int i=1;i<=n;i++) cin>>a[i];
- for(int i=n+2;i<=n+2*n;i+=2) cin>>a[i];
- for(int i=n+1;i<=n+m;i++){
- key=a[i];
- j=i-1;
- while(j>=1 && key<a[j]){
- a[j+1]=a[j];
- j--;
- }
- a[j+1]=key;
- }
- for(int i=1;i<=n+m;i++) cout<<a[i]<<" ";
0
- for(int i=n+1;i<=n+m;i++){
- key=a[i];
- j=i-1;
- while(j>=1 && key<a[j]){
- a[j+1]=a[j];
- j--;
- }
- a[j+1]=key;
- }
0
0
0
0