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

Code

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


def turn(i):
    global length
    if i <= 0:
        return ""
    else:
        length += 1
        return str(i) + " "
trues = [False] * len(x)
index = 1
lastCorrect = 0
firstOfCycle = 1
while index <= len(x):
    if x[index-1] < index:
        r += (turn(index-1+firstOfCycle)+turn(index-1-x[index-1])+turn(index-x[index-1]-2)+turn(index-1+firstOfCycle))
        index = x[index-1]
    else:
        r += (turn(index-1+firstOfCycle)+turn(x[index-1])+turn(x[index-1]-1)+turn(index-2+firstOfCycle))
        index = x[index-1]
    firstOfCycle = 0
    trues[index - 1] = True
    if index == lastCorrect + 1:
        try:
            while trues[index - 1]:
                index += 1
                lastCorrect += 1
        except Exception as e:
            index += 1
        firstOfCycle = 1






r = r[:-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
34
1 9 8 8 8 7 5 4 7 1 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
3994
1 650 649 649 321 320 649 327 ...

Test 3

Group: 3

Verdict:

input
100000
94703 47808 62366 31885 7091 8...

correct output
399956
98676 98676 98675 98676 62994 ...

user output
399998
1 94703 94702 94702 23125 2312...