Code Submission Evaluation System Login

Datatähti 2016 alku

Start:2015-09-28 00:00:00
End:2015-10-12 00:00:00
 

Tasks | Scoreboard | Statistics


CSES - Datatähti 2016 alku - Results
History
2015-10-05 19:00:31100
2015-10-05 18:56:290
2015-10-05 18:55:140
2015-10-05 18:53:530
2015-10-05 18:48:100
2015-10-05 18:43:550
2015-10-05 18:41:540
2015-10-05 18:40:400
2015-10-05 18:38:250
2015-10-05 17:56:590
2015-10-04 23:58:510
2015-10-04 23:57:200
2015-10-04 23:16:290
2015-10-04 23:15:380
2015-10-04 23:14:030
2015-10-04 19:47:480
2015-10-04 19:39:300
2015-10-04 00:15:040
2015-10-04 00:14:200
2015-10-03 23:59:450
2015-10-01 15:23:3443
2015-10-01 15:17:510
2015-10-01 11:44:380
2015-10-01 11:07:430
2015-09-30 22:17:440
2015-09-30 22:10:1843
2015-09-30 22:08:130
2015-09-30 22:02:210
2015-09-30 21:44:2443
2015-09-30 21:23:0743
2015-09-30 19:32:4943
2015-09-30 19:13:250
2015-09-30 19:01:420
2015-09-30 19:00:590
2015-09-30 18:59:450
2015-09-30 18:58:230
2015-09-30 18:25:560
2015-09-30 18:24:540
2015-09-29 17:38:130
2015-09-29 17:37:410
2015-09-29 17:31:490
Task:Kirjat
Sender:ollpu
Submission time:2015-10-05 19:00:31
Language:Python2
Status:READY
Score:100

Feedback

groupverdictscore
#1ACCEPTED18
#2ACCEPTED25
#3ACCEPTED57

Test results

testverdicttime (s)group
#1ACCEPTED0.06 / 1.001details
#2ACCEPTED0.05 / 1.001details
#3ACCEPTED0.05 / 1.001details
#4ACCEPTED0.05 / 1.001details
#5ACCEPTED0.06 / 1.001details
#6ACCEPTED0.06 / 1.001details
#7ACCEPTED0.05 / 1.001details
#8ACCEPTED0.06 / 1.001details
#9ACCEPTED0.06 / 1.001details
#10ACCEPTED0.06 / 1.001details
#11ACCEPTED0.05 / 1.001details
#12ACCEPTED0.06 / 1.001details
#13ACCEPTED0.05 / 1.001details
#14ACCEPTED0.06 / 1.001details
#15ACCEPTED0.07 / 1.001details
#16ACCEPTED0.05 / 1.001details
#17ACCEPTED0.06 / 1.001details
#18ACCEPTED0.05 / 1.001details
#19ACCEPTED0.06 / 1.001details
#20ACCEPTED0.06 / 1.001details
#21ACCEPTED0.06 / 1.002details
#22ACCEPTED0.06 / 1.002details
#23ACCEPTED0.07 / 1.002details
#24ACCEPTED0.06 / 1.002details
#25ACCEPTED0.06 / 1.002details
#26ACCEPTED0.06 / 1.002details
#27ACCEPTED0.05 / 1.002details
#28ACCEPTED0.06 / 1.002details
#29ACCEPTED0.06 / 1.002details
#30ACCEPTED0.06 / 1.002details
#31ACCEPTED0.05 / 1.002details
#32ACCEPTED0.05 / 1.002details
#33ACCEPTED0.06 / 1.002details
#34ACCEPTED0.05 / 1.002details
#35ACCEPTED0.06 / 1.002details
#36ACCEPTED0.06 / 1.002details
#37ACCEPTED0.06 / 1.002details
#38ACCEPTED0.06 / 1.002details
#39ACCEPTED0.06 / 1.002details
#40ACCEPTED0.06 / 1.002details
#41ACCEPTED0.06 / 1.003details
#42ACCEPTED0.06 / 1.003details
#43ACCEPTED0.06 / 1.003details
#44ACCEPTED0.06 / 1.003details
#45ACCEPTED0.05 / 1.003details
#46ACCEPTED0.07 / 1.003details
#47ACCEPTED0.05 / 1.003details
#48ACCEPTED0.06 / 1.003details
#49ACCEPTED0.06 / 1.003details
#50ACCEPTED0.06 / 1.003details
#51ACCEPTED0.07 / 1.003details
#52ACCEPTED0.06 / 1.003details
#53ACCEPTED0.07 / 1.003details
#54ACCEPTED0.06 / 1.003details
#55ACCEPTED0.06 / 1.003details
#56ACCEPTED0.51 / 1.003details
#57ACCEPTED0.46 / 1.003details
#58ACCEPTED0.49 / 1.003details
#59ACCEPTED0.45 / 1.003details
#60ACCEPTED0.49 / 1.003details

Code

#!/usr/bin/env python
# -*- coding: utf-8 -*-


from sys import stdin
from sys import stdout
import sys
# import profile # profile

def readline():
    return stdin.readline().strip()

n = int(readline())

uolevi = readline().split(' ')
maija = readline().split(' ')

kaaleppi = [0] * n

paino = []


def varattu(x, y):
    return maija[y]-1 == x or uolevi[y]-1 == x

    
for y in xrange(n):
    uol = int(uolevi[y])
    uolevi[y] = uol
    mai = int(maija[y])
    maija[y] = mai
    
    paino.append(uol+mai)

paino_order = sorted(xrange(len(paino)), key=lambda k: paino[k])
len_paino_order = len(paino_order)
paino_order_head = paino_order[:3]
paino_order_head_index = 3

def rem_po(y):
    global paino_order_head_index
    paino_order_head.remove(y)
    if paino_order_head_index < len_paino_order:
        paino_order_head.append(paino_order[paino_order_head_index])
        paino_order_head_index += 1
    

def set_kaaleppi(y, v, d=False):
    global kaaleppi
    kaaleppi[y] = v
    if d:
        rem_po(y)


def find(x):
    # Etsi "vähiten kuormittava" vaihtoehto
    for y in paino_order_head:
        if not varattu(x, y):
            set_kaaleppi(y, x+1, True)
            return True
    return False

def find_for_book(x):
    if not find(x):
        kirja = x+1
        left_index = kaaleppi.index(0)
        
        vaihtoehdot = [y for y in xrange(n) if not varattu(x, y)]
        
        left_uol_val = uolevi[left_index]
        if left_uol_val in kaaleppi:
            val = kaaleppi.index(left_uol_val)
            if val in vaihtoehdot:
                vaihtoehdot.remove(val)
        
        left_mai_val = maija[left_index]
        if left_mai_val in kaaleppi:
            val = kaaleppi.index(left_mai_val)
            if val in vaihtoehdot:
                vaihtoehdot.remove(val)
            
        day = vaihtoehdot[0]
        old_kirja = kaaleppi[day]
        set_kaaleppi(day, kirja)
        set_kaaleppi(left_index, old_kirja, True)
        

def run():
    global kaaleppi
    map(find_for_book, xrange(n))
    print(' '.join(map(str, kaaleppi)))
    

run()



    

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
3
2 1 3
3 2 1

view   save

correct output
1 3 2 

view   save

user output
1 3 2

view   save

Test 2

Group: 1

Verdict: ACCEPTED

input
4
2 1 4 3
1 4 3 2

view   save

correct output
4 3 2 1 

view   save

user output
3 2 1 4

view   save

Test 3

Group: 1

Verdict: ACCEPTED

input
4
4 3 2 1
3 1 4 2

view   save

correct output
1 2 3 4 

view   save

user output
2 4 1 3

view   save

Test 4

Group: 1

Verdict: ACCEPTED

input
4
3 4 2 1
2 3 1 4

view   save

correct output
1 2 4 3 

view   save

user output
4 1 3 2

view   save

Test 5

Group: 1

Verdict: ACCEPTED

input
4
4 1 3 2
2 3 1 4

view   save

correct output
1 4 2 3 

view   save

user output
1 2 4 3

view   save

Test 6

Group: 1

Verdict: ACCEPTED

input
5
5 1 3 2 4
3 4 2 1 5

view   save

correct output
2 3 4 5 1 

view   save

user output
4 5 1 3 2

view   save

Test 7

Group: 1

Verdict: ACCEPTED

input
5
4 2 3 5 1
3 5 2 1 4

view   save

correct output
1 4 5 2 3 

view   save

user output
5 4 1 3 2

view   save

Test 8

Group: 1

Verdict: ACCEPTED

input
5
1 4 3 2 5
4 3 1 5 2

view   save

correct output
3 2 5 1 4 

view   save

user output
5 1 2 4 3

view   save

Test 9

Group: 1

Verdict: ACCEPTED

input
5
5 3 2 1 4
4 2 1 3 5

view   save

correct output
1 4 5 2 3 

view   save

user output
1 4 5 2 3

view   save

Test 10

Group: 1

Verdict: ACCEPTED

input
5
4 3 5 1 2
5 1 3 2 4

view   save

correct output
2 5 1 4 3 

view   save

user output
2 5 4 3 1

view   save

Test 11

Group: 1

Verdict: ACCEPTED

input
5
5 1 3 2 4
2 5 4 3 1

view   save

correct output
3 4 2 1 5 

view   save

user output
4 3 5 1 2

view   save

Test 12

Group: 1

Verdict: ACCEPTED

input
5
5 4 2 1 3
2 3 5 4 1

view   save

correct output
3 1 4 5 2 

view   save

user output
1 5 4 3 2

view   save

Test 13

Group: 1

Verdict: ACCEPTED

input
5
1 5 2 4 3
5 1 4 3 2

view   save

correct output
3 2 5 1 4 

view   save

user output
2 4 3 5 1

view   save

Test 14

Group: 1

Verdict: ACCEPTED

input
5
5 3 4 2 1
3 5 2 1 4

view   save

correct output
1 2 3 4 5 

view   save

user output
4 1 5 3 2

view   save

Test 15

Group: 1

Verdict: ACCEPTED

input
5
4 5 3 2 1
3 2 1 4 5

view   save

correct output
5 3 2 1 4 

view   save

user output
5 4 2 1 3

view   save

Test 16

Group: 1

Verdict: ACCEPTED

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

view   save

correct output
3 1 9 2 4 7 8 6 5 10 

view   save

user output
6 8 3 7 2 9 5 4 1 10

view   save

Test 17

Group: 1

Verdict: ACCEPTED

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

view   save

correct output
5 7 1 3 9 2 4 10 6 8 

view   save

user output
3 5 4 6 1 7 8 2 9 10

view   save

Test 18

Group: 1

Verdict: ACCEPTED

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

view   save

correct output
1 6 8 9 5 4 10 3 2 7 

view   save

user output
10 4 6 9 3 8 7 5 2 1

view   save

Test 19

Group: 1

Verdict: ACCEPTED

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

view   save

correct output
5 1 6 2 8 10 7 3 9 4 

view   save

user output
10 6 7 5 4 8 1 9 2 3

view   save

Test 20

Group: 1

Verdict: ACCEPTED

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

view   save

correct output
1 5 7 3 10 6 9 4 2 8 

view   save

user output
6 10 9 4 1 7 3 2 5 8

view   save

Test 21

Group: 2

Verdict: ACCEPTED

input
3
3 2 1
1 3 2

view   save

correct output
2 1 3 

view   save

user output
2 1 3

view   save

Test 22

Group: 2

Verdict: ACCEPTED

input
4
2 3 1 4
1 4 3 2

view   save

correct output
3 2 4 1 

view   save

user output
3 2 4 1

view   save

Test 23

Group: 2

Verdict: ACCEPTED

input
4
2 4 3 1
4 1 2 3

view   save

correct output
3 2 1 4 

view   save

user output
1 3 4 2

view   save

Test 24

Group: 2

Verdict: ACCEPTED

input
4
4 1 2 3
1 3 4 2

view   save

correct output
3 2 1 4 

view   save

user output
3 2 1 4

view   save

Test 25

Group: 2

Verdict: ACCEPTED

input
4
2 1 3 4
4 3 2 1

view   save

correct output
3 4 1 2 

view   save

user output
1 2 4 3

view   save

Test 26

Group: 2

Verdict: ACCEPTED

input
5
2 5 3 1 4
4 2 1 5 3

view   save

correct output
5 4 2 3 1 

view   save

user output
1 4 2 3 5

view   save

Test 27

Group: 2

Verdict: ACCEPTED

input
5
1 4 3 2 5
5 2 4 1 3

view   save

correct output
4 5 2 3 1 

view   save

user output
2 1 5 3 4

view   save

Test 28

Group: 2

Verdict: ACCEPTED

input
5
1 4 2 3 5
2 3 1 5 4

view   save

correct output
4 5 3 1 2 

view   save

user output
5 1 4 2 3

view   save

Test 29

Group: 2

Verdict: ACCEPTED

input
5
4 5 2 3 1
5 3 1 2 4

view   save

correct output
1 2 3 4 5 

view   save

user output
3 4 5 1 2

view   save

Test 30

Group: 2

Verdict: ACCEPTED

input
5
3 2 1 5 4
5 4 3 1 2

view   save

correct output
4 5 2 3 1 

view   save

user output
4 1 2 3 5

view   save

Test 31

Group: 2

Verdict: ACCEPTED

input
5
5 3 1 2 4
3 2 4 1 5

view   save

correct output
4 5 2 3 1 

view   save

user output
4 5 2 3 1

view   save

Test 32

Group: 2

Verdict: ACCEPTED

input
5
5 4 1 2 3
1 5 3 4 2

view   save

correct output
2 3 4 5 1 

view   save

user output
4 3 2 5 1

view   save

Test 33

Group: 2

Verdict: ACCEPTED

input
5
1 4 5 3 2
3 5 2 4 1

view   save

correct output
5 1 3 2 4 

view   save

user output
4 2 1 5 3

view   save

Test 34

Group: 2

Verdict: ACCEPTED

input
5
3 4 2 1 5
1 5 3 4 2

view   save

correct output
2 3 4 5 1 

view   save

user output
5 2 1 3 4

view   save

Test 35

Group: 2

Verdict: ACCEPTED

input
5
2 3 1 5 4
5 4 2 1 3

view   save

correct output
1 2 3 4 5 

view   save

user output
4 1 3 2 5

view   save

Test 36

Group: 2

Verdict: ACCEPTED

input
1000
63 72 78 267 740 551 517 698 6...
view   save

correct output
26 926 267 321 385 444 968 690...
view   save

user output
406 139 568 74 491 404 281 344...
view   save

Test 37

Group: 2

Verdict: ACCEPTED

input
1000
954 273 839 263 331 161 938 51...
view   save

correct output
1 2 3 4 5 6 7 8 9 10 11 12 13 ...
view   save

user output
768 84 949 73 161 40 922 770 7...
view   save

Test 38

Group: 2

Verdict: ACCEPTED

input
1000
740 142 781 837 759 392 582 14...
view   save

correct output
111 291 702 70 561 469 707 897...
view   save

user output
944 25 942 846 840 712 286 396...
view   save

Test 39

Group: 2

Verdict: ACCEPTED

input
1000
960 550 210 529 691 277 63 975...
view   save

correct output
716 604 535 519 27 204 574 592...
view   save

user output
528 847 431 787 885 710 512 64...
view   save

Test 40

Group: 2

Verdict: ACCEPTED

input
1000
371 772 197 202 504 931 4 46 6...
view   save

correct output
26 926 267 321 385 444 968 690...
view   save

user output
123 305 69 511 710 988 95 471 ...
view   save

Test 41

Group: 3

Verdict: ACCEPTED

input
3
1 2 3
3 1 2

view   save

correct output
2 3 1 

view   save

user output
2 3 1

view   save

Test 42

Group: 3

Verdict: ACCEPTED

input
4
4 2 3 1
2 3 1 4

view   save

correct output
1 4 2 3 

view   save

user output
1 4 2 3

view   save

Test 43

Group: 3

Verdict: ACCEPTED

input
4
2 1 4 3
4 3 1 2

view   save

correct output
1 2 3 4 

view   save

user output
1 2 3 4

view   save

Test 44

Group: 3

Verdict: ACCEPTED

input
4
1 4 2 3
2 3 4 1

view   save

correct output
3 2 1 4 

view   save

user output
3 2 1 4

view   save

Test 45

Group: 3

Verdict: ACCEPTED

input
4
2 1 4 3
1 3 2 4

view   save

correct output
4 2 3 1 

view   save

user output
3 4 1 2

view   save

Test 46

Group: 3

Verdict: ACCEPTED

input
5
3 1 5 2 4
5 4 2 1 3

view   save

correct output
1 2 3 4 5 

view   save

user output
4 2 1 3 5

view   save

Test 47

Group: 3

Verdict: ACCEPTED

input
5
2 1 5 3 4
5 3 2 4 1

view   save

correct output
4 5 3 1 2 

view   save

user output
1 2 4 5 3

view   save

Test 48

Group: 3

Verdict: ACCEPTED

input
5
5 1 4 3 2
3 5 1 2 4

view   save

correct output
1 2 3 4 5 

view   save

user output
4 3 2 1 5

view   save

Test 49

Group: 3

Verdict: ACCEPTED

input
5
2 4 1 3 5
3 5 4 1 2

view   save

correct output
5 1 3 2 4 

view   save

user output
5 1 3 2 4

view   save

Test 50

Group: 3

Verdict: ACCEPTED

input
5
5 2 3 4 1
2 1 4 3 5

view   save

correct output
1 4 5 2 3 

view   save

user output
4 3 1 5 2

view   save

Test 51

Group: 3

Verdict: ACCEPTED

input
5
4 1 5 3 2
2 4 1 5 3

view   save

correct output
1 2 3 4 5 

view   save

user output
3 5 4 2 1

view   save

Test 52

Group: 3

Verdict: ACCEPTED

input
5
3 1 5 2 4
1 4 2 3 5

view   save

correct output
5 2 1 4 3 

view   save

user output
5 3 4 1 2

view   save

Test 53

Group: 3

Verdict: ACCEPTED

input
5
1 4 5 3 2
4 2 3 5 1

view   save

correct output
5 3 2 1 4 

view   save

user output
5 1 4 2 3

view   save

Test 54

Group: 3

Verdict: ACCEPTED

input
5
1 4 5 2 3
4 2 3 1 5

view   save

correct output
2 3 4 5 1 

view   save

user output
5 1 4 3 2

view   save

Test 55

Group: 3

Verdict: ACCEPTED

input
5
4 5 3 2 1
5 3 4 1 2

view   save

correct output
1 2 5 3 4 

view   save

user output
1 2 5 3 4

view   save

Test 56

Group: 3

Verdict: ACCEPTED

input
100000
74620 99226 537 63830 13777 69...
view   save

correct output
44158 25720 84658 90057 99607 ...
view   save

user output
96827 68920 4618 30308 13257 5...
view   save

Test 57

Group: 3

Verdict: ACCEPTED

input
100000
67665 19864 90761 58104 38796 ...
view   save

correct output
1 2 3 4 5 6 7 8 9 10 11 12 13 ...
view   save

user output
50904 4715 83240 37020 55335 3...
view   save

Test 58

Group: 3

Verdict: ACCEPTED

input
100000
63021 24161 40379 69157 89616 ...
view   save

correct output
4913 70683 13897 99969 66725 3...
view   save

user output
90244 13864 72432 44544 85123 ...
view   save

Test 59

Group: 3

Verdict: ACCEPTED

input
100000
31500 70052 90949 56812 73871 ...
view   save

correct output
47064 17335 15460 80797 56435 ...
view   save

user output
13604 75138 95291 21853 89404 ...
view   save

Test 60

Group: 3

Verdict: ACCEPTED

input
100000
39127 4446 57817 67459 53741 8...
view   save

correct output
96591 75698 82505 59416 72144 ...
view   save

user output
72847 937 86541 59719 16743 78...
view   save