CSES - Datatähti 2017 alku - Results
Submission details
Task:Järjestys
Sender:joshimasta
Submission time:2016-10-07 16:39:25 +0300
Language:Python3
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.06 s1details
#20.07 s2details
#30.41 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]
"""
def turn(i):
    if i <= 0:
        return ""
    else:
        return str(i) + " "
        length += 1
trues = [False] * len(x)
index = 1
lastCorrect = 0
firstOfCycle = 1
while index <= len(x):
    #x[index] -> x[x[index]]
    #print(r)
    #print(index)
    #print(lastCorrect)
    if index-2+firstOfCycle < 1:
        r += (turn(x[index-1])+turn(x[index-1]-1))
    else:
        r += (turn(index-1+firstOfCycle)+turn(x[index-1])+turn(x[index-1]-1)+turn(index-2+firstOfCycle))
    firstOfCycle = 0
    index = x[index-1]
    trues[index - 1] = True
    if index == lastCorrect + 1:
        #print("in")
        try:
            while trues[index - 1]:
                index += 1
                lastCorrect += 1
        except Exception as e:
            index += 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
0
9 8 8 8 7 7 7 2 1 6 3 2 2 4 3 ...

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
0
650 649 649 328 327 648 327 76...

Test 3

Group: 3

Verdict:

input
100000
94703 47808 62366 31885 7091 8...

correct output
399956
98676 98676 98675 98676 62994 ...

user output
0
94703 94702 94702 71577 71576 ...