Two tricks here:

1. Counting no. of inversed pairs - using Merge Sort, nothing special

2. How to check 'chaotic'? We simply check if any number is over 2 slots away from its own slot : )

#!/bin/python3

import sys

ret = 0
def merge(arr1, arr2):
global ret
if not arr1: return arr2
if not arr2: return arr1
for v2 in arr2:
arr1.append(v2)
i = len(arr1) - 1
while(i > 0):
if arr1[i] < arr1[i - 1]:
arr1[i - 1],arr1[i] = arr1[i], arr1[i - 1]
i -= 1
ret += 1
else:
break
return arr1 def mergeSort(arr):
n = len(arr)
if (n < 2): return arr
return merge(mergeSort(arr[:n//2]), mergeSort(arr[n//2:])) T = int(input().strip())
for _ in range(T):
ret = 0
n = int(input().strip())
q = [int(q_temp) for q_temp in input().strip().split(' ')]
# your code goes here
bTooCh = False
for i in range(n):
if q[i] - i > 3:
bTooCh = True
break
if bTooCh:
print ("Too chaotic")
continue mergeSort(q)
print (ret)

最新文章

  1. PhpStorm 快捷键大全 PhpStorm 常用快捷键和配置
  2. css笔记1: html页面的CSS、DIV命名规则
  3. CSDDN特约专稿:个性化推荐技术漫谈
  4. bootstrap插件思路整理
  5. 基于Java的WebSocket推送【转载】
  6. 【转】APP被苹果App Store拒绝的N个原因(持续补充)
  7. DNS (二)协议
  8. [BJOI2019]删数(线段树)
  9. 清北学堂学习总结day2
  10. css_属性
  11. Windows 版 SourceTree 免登录跳过初始设置的方法
  12. 守护进程(Daemon)
  13. 获取请求Url
  14. Javaweb学习笔记——(七)——————myexlipse基本使用、jdk5.0新特性及反射讲解
  15. hdu3183 rmq求区间最值的下标
  16. canvas 写一个刮刮乐抽奖
  17. Varnish 入门
  18. 400 bad Request: JackSon将json串转成List&lt;Object&gt;,异常com.fasterxml.jackson.databind.JsonMappingException
  19. Android App的签名
  20. linux中rc.d目录下的文件

热门文章

  1. HTML5和CSS3登录页面制作实录
  2. NGINX 内存池有感
  3. String类和StringBuffer类的方法
  4. 关于makefile
  5. java_easyui体系之DataGrid(1)[转]
  6. JavaWeb chapter 4 Servlet处理HTTP请求
  7. android 高效加载大图
  8. Ubuntu gmake: command not found
  9. java 深度探险 java 泛型
  10. Python开发入门与实战7-Django Form