CSES - Datatähti 2017 alku - Results
Submission details
Task:Järjestys
Sender:joshimasta
Submission time:2016-10-07 16:23:49 +0300
Language:Python3
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.06 s1details
#20.06 s2details
#30.19 s3details

Code

import random
input()
x = list(map(int, input().split()))
r = ""
length = 0

def getIndex(l,i):
    c = 0
    w = 0
    while True:
        if l[w] == i:
            return c
        elif l[w] < i:
            c += 1
        w += 1
"""
i = int(len(x))
b = True
while i != 1:
    #index = x.index(i)
    index = getIndex(x,i)
    if index == i - 1:
        pass
    elif index == 0:
        length += 2
        r += (str(i)+" "+str(i-1)+" ")
    else:
        length += 4
        r += (str(index + 1)+" "+str(i)+" "+str(i-1)+" "+str(index)+" ")
    #x.pop(index)
    i -= 1

r = r[:-1]
"""

trues = [False] * len(x)
index = 1
lastCorrect = 0
firstOfCycle = 1
while index < len(x):
    #x[index] -> x[x[index]]
    if index == 0:
        length += 2
        r += (str(x[index-1])+" "+str(x[index-1]-1)+" ")
    else:
        length += 4
        r += (str(index-1+firstOfCycle)+" "+str(x[index-1])+" "+str(x[index-1]-1)+" "+str(index-2+firstOfCycle)+" ")
    firstOfCycle = 0
    index = x[index-1]
    trues[index - 1] = True
    if index == lastCorrect + 1:
        while trues[index - 1] and index < len(x):
            index += 1
            lastCorrect += 1
        firstOfCycle = 1








print(length)
print(r)

Test details

Test 1

Group: 1

Verdict:

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
28
1 9 8 0 8 8 7 7 7 2 1 6 1 3 2 ...

Test 2

Group: 2

Verdict:

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

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

user output
3340
1 650 649 0 649 328 327 648 32...

Test 3

Group: 3

Verdict:

input
100000
94703 47808 62366 31885 7091 8...

correct output
399956
98676 98676 98675 98676 62994 ...

user output
132644
1 94703 94702 0 94702 71577 71...