CSES - Datatähti 2017 alku - Results
Submission details
Task:Järjestys
Sender:katsotkos NaN
Submission time:2016-10-16 22:01:21 +0300
Language:Python3
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED19
#2ACCEPTED37
#3ACCEPTED44
Test results
testverdicttimegroup
#1ACCEPTED0.06 s1details
#2ACCEPTED0.06 s2details
#3ACCEPTED1.11 s3details

Code

n = int(input())
t = [int(i) for i in input().split(" ")]
pairs = zip(t, list(range(1, n+1)))
order = list(zip(*sorted(pairs)))[1]


BIT = [0]*(n+1)
def add(pos,val):
	while pos <=n+1:
		BIT[pos]+=val
		pos+=(pos&-pos)

def get(pos):
	ans=0
	while pos > 0:
		ans+=BIT[pos]
		pos-=(pos&-pos)
	return ans;

adjust = [0]*n
for i in range(n):
	adjust[i]=i-get(t[i])
	add(t[i],1)


res = ""
m = 0
for x in reversed(order):
	a = x-adjust[x-1]
	if (a > 1):
		res += str(a-1) +" "+ str(a) +" "
		m += 2
	if (n > 1):	
		res += str(n) +" "+ str(n-1) +" "
		m += 2
	n -= 1
print(m)
print(res[:-1])

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
10
9 3 4 7 6 5 10 2 8 1

correct output
32
10 10 9 10 9 8 7 9 4 2 1 4 5 2...

user output
30
6 7 10 9 9 8 6 7 8 7 2 3 7 6 2...

Test 2

Group: 2

Verdict: ACCEPTED

input
1000
650 716 982 41 133 1000 876 92...

correct output
3984
207 207 206 207 128 127 126 12...

user output
3988
5 6 1000 999 95 96 999 998 129...

Test 3

Group: 3

Verdict: ACCEPTED

input
100000
94703 47808 62366 31885 7091 8...

correct output
399956
98676 98676 98675 98676 62994 ...

user output
399964
35854 35855 100000 99999 3259 ...