题目描述
有一个由N(N+1)/2个球组成的金字塔,如下图所示。让(0,0)表示金字塔顶部的球的坐标,(x,y)表示从顶部的第x层向左数第y(0≤y≤x)个球的坐标。

每个球都带有一个从0到N(N+1)/2−1的数字标签,每个球上的数字都不同。您可以在六个方向上对相邻的两个球进行交换操作。这里,当满足以下条件之一时,坐标为(x1,y1)和(x2,y2)的球在六个方向上是相邻的:
- x1=x2−1且y1=y2−1
- x1=x2−1且y1=y2
- x1=x2且y1=y2−1
- x1=x2且y1=y2+1
- x1=x2+1且y1=y2
- x1=x2+1且y1=y2+1
通过最多进行10000次操作,请将球排列好,使得除了最底层的每个球(x,y)(0≤x≤N−2,0≤y≤x)之外,其下方的两个球(x+1,y),(x+1,y+1)的标签数字都小于它。请以尽可能少的操作次数实现这个目标。

评分
设K为操作次数,E为操作完成后违反条件的球对数。这里E是满足球(x,y)比球(x+1,y′)(y′∈{y,y+1})的编号更大的所有(x,y)和(x+1,y′)球对的总数。那么,您将获得以下分数。
- 如果E=0,得分为100000−5K。
- 如果E>0,得分为50000−50E。
共有150个测试用例,提交得分为每个测试用例的总分。如果您的提交产生非法输出或在某些测试用例中超出时间限制,则提交将被判定为WA。