交叉排序
- 1000ms
- 5000K
输入一行 k 个用空格分隔开的整数,依次为 n1, n2 … nk。请将所有下标不能被 3 但可以被 2 整除的数在这些数字原有的位置上进行升序排列,此外,将余下下标能被 3 整除的数在这些数字原有的位置上进行降序排列。
输出包括一行,与输入相对应的若干个整数,为排序后的结果,整数之间用空格分隔。
样例输入
1 5 4 3 10 7 19
样例输出
1 3 7 5 10 4 19
Py2代码:
from __future__ import print_function a=raw_input().split(' ') a.insert(0,'0') num=0 b=[] c=[] while num<len(a): a[num]=int(a[num]) if num!=0 and num%2==0 and num%3!=0: b.append(a[num]) elif num%3==0 and num!=0: c.append(a[num]) num+=1 b.sort() c.sort(reverse=True) for i in range(len(a)): if(i!=0 and i%2==0 and i%3!=0): a[i]=b[0] del b[0] elif i%3==0 and i!=0: a[i]=c[0] del c[0] for i in range(1,len(a)): if(i==len(a)-1): print(a[i],end='') else: print(a[i],end=' ')
Py3代码:
a=input().split(' ') a.insert(0,'0') num=0 b=[] c=[] while num<len(a): a[num]=int(a[num]) if num!=0 and num%2==0 and num%3!=0: b.append(a[num]) elif num%3==0 and num!=0: c.append(a[num]) num+=1 b.sort() c.sort(reverse=True) for i in range(len(a)): if(i!=0 and i%2==0 and i%3!=0): a[i]=b[0] del b[0] elif i%3==0 and i!=0: a[i]=c[0] del c[0] for i in range(1,len(a)): if(i==len(a)-1): print(a[i],end='') else: print(a[i],end=' ')