Code Submission Evaluation System Login

Datatähti 2019 alku

Start:2018-10-01 00:00:00
End:2018-10-15 00:00:00
 

Tasks | Messages | Scoreboard | Statistics


CSES - Datatähti 2019 alku - Results
History
2018-10-09 09:43:23100
2018-10-09 09:40:0160
2018-10-09 09:19:540
2018-10-09 09:16:200
Task:Leimasin
Sender:kaurip
Submission time:2018-10-09 09:43:23
Language:Python3
Status:READY
Score:100

Feedback

groupverdictscore
#1ACCEPTED29
#2ACCEPTED31
#3ACCEPTED40

Test results

testverdicttime (s)group
#1ACCEPTED0.04 / 1.001details
#2ACCEPTED0.05 / 1.001details
#3ACCEPTED0.05 / 1.001details
#4ACCEPTED0.05 / 1.001details
#5ACCEPTED0.05 / 1.001details
#6ACCEPTED0.05 / 1.001details
#7ACCEPTED0.05 / 1.001details
#8ACCEPTED0.05 / 1.001details
#9ACCEPTED0.04 / 1.001details
#10ACCEPTED0.05 / 1.001details
#11ACCEPTED0.04 / 1.001details
#12ACCEPTED0.05 / 1.001details
#13ACCEPTED0.04 / 1.001details
#14ACCEPTED0.04 / 1.001details
#15ACCEPTED0.05 / 1.002details
#16ACCEPTED0.04 / 1.002details
#17ACCEPTED0.05 / 1.002details
#18ACCEPTED0.05 / 1.002details
#19ACCEPTED0.04 / 1.002details
#20ACCEPTED0.04 / 1.002details
#21ACCEPTED0.05 / 1.002details
#22ACCEPTED0.05 / 1.002details
#23ACCEPTED0.05 / 1.002details
#24ACCEPTED0.05 / 1.002details
#25ACCEPTED0.05 / 1.002details
#26ACCEPTED0.05 / 1.002details
#27ACCEPTED0.04 / 1.002details
#28ACCEPTED0.05 / 1.002details
#29ACCEPTED0.06 / 1.003details
#30ACCEPTED0.05 / 1.003details
#31ACCEPTED0.04 / 1.003details
#32ACCEPTED0.06 / 1.003details
#33ACCEPTED0.04 / 1.003details
#34ACCEPTED0.05 / 1.003details
#35ACCEPTED0.05 / 1.003details
#36ACCEPTED0.05 / 1.003details
#37ACCEPTED0.04 / 1.003details
#38ACCEPTED0.04 / 1.003details
#39ACCEPTED0.05 / 1.003details
#40ACCEPTED0.05 / 1.003details
#41ACCEPTED0.04 / 1.003details
#42ACCEPTED0.05 / 1.003details

Code

from sys import setrecursionlimit

setrecursionlimit(2000)

row = input()
stamp = input()
# row = "AABCABAABABCBCABCAABCBCBC"
# stamp = "ABC"
stampl = len(stamp)
rowl = len(row)

stamps = []
fulls = []

def give_results():
    print(len(stamps))
    for pos in reversed(stamps):
        print(pos+1, end = " ")

def fail():
    print(-1)

def front(endpos):
    #endpos is the last not included
    if endpos == 0:
        return 0
    for f in reversed(range(1,stampl)):
        if endpos-f < 0 :
            continue
        if row[endpos-f:endpos] == stamp[0:f]:
            stamps.append(endpos-f)
            return front(endpos-f)
    return -1

def tail(startpos):
    startpos += 1
    #startpos is the last not included
    if startpos == rowl:
        return 0
    for f in reversed(range(1,stampl)):
        if startpos+f > rowl:
            continue
        if row[startpos:startpos+f] == stamp[stampl-f:stampl]:
            stamps.append(startpos-stampl+f)
            return tail(startpos+f-1)
    return -1

def full(startpos):
    index = row.find(stamp,startpos)
    if index == -1:
        return -1
    stamps.append(index)
    fulls.append(index)
    return full(index+stampl)

def middle(startpos,endpos):
    startpos += 1
    ml = endpos-startpos
    if ml <= 0:
        return 0
    for f in reversed(range(1,stampl)):
        if f < ml:
            ml = f
        if row[startpos:startpos+f][0:ml] == stamp[stampl-f:stampl][0:ml]:
            stamps.append(startpos-stampl+f)
            return middle(startpos+f-1,endpos)
        if row[endpos-f:endpos][f-ml:f] == stamp[0:f][f-ml:f]:
            stamps.append(endpos-f)
            return middle(startpos-1,endpos-f)
    return -1
    

def main():

    full(0)
    
    if(len(fulls) == 0):
        fail()
        return
    
    if front(fulls[0]) == -1:
        fail()
        return

    if tail(fulls[len(fulls)-1]+stampl-1) == -1:
        fail()
        return

    for i in range(0,len(fulls)-1):
        if middle(fulls[i]+stampl-1,fulls[i+1]) == -1:
            fail()
            return 0

    give_results()

main()

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
BBBBBBBBBB
B
view   save

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

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

Test 2

Group: 1

Verdict: ACCEPTED

input
AABBABABAB
AB
view   save

correct output
6
1 9 7 5 3 2
view   save

user output
6
3 1 9 7 5 2
view   save

Test 3

Group: 1

Verdict: ACCEPTED

input
AABAAABAAA
AABAA
view   save

correct output
4
6 5 2 1
view   save

user output
3
6 5 1
view   save

Test 4

Group: 1

Verdict: ACCEPTED

input
BAAAAAABBB
BAAAAAABB
view   save

correct output
2
2 1
view   save

user output
2
2 1
view   save

Test 5

Group: 1

Verdict: ACCEPTED

input
AAABBABBAA
AAABBABBAA
view   save

correct output
1
1
view   save

user output
1
1
view   save

Test 6

Group: 1

Verdict: ACCEPTED

input
GGGGGGGGGG
G
view   save

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

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

Test 7

Group: 1

Verdict: ACCEPTED

input
QUUQUUQUQU
QU
view   save

correct output
6
9 7 5 4 2 1
view   save

user output
6
5 2 9 7 4 1
view   save

Test 8

Group: 1

Verdict: ACCEPTED

input
DWXDWDWXHJ
DWXHJ
view   save

correct output
3
1 4 6
view   save

user output
3
1 4 6
view   save

Test 9

Group: 1

Verdict: ACCEPTED

input
FSOCRDGQBB
FSOCRDGQB
view   save

correct output
2
2 1
view   save

user output
2
2 1
view   save

Test 10

Group: 1

Verdict: ACCEPTED

input
OETMIMPUPD
OETMIMPUPD
view   save

correct output
1
1
view   save

user output
1
1
view   save

Test 11

Group: 1

Verdict: ACCEPTED

input
DOWEUOWUEU
DOWEU
view   save

correct output
-1
view   save

user output
-1
view   save

Test 12

Group: 1

Verdict: ACCEPTED

input
JQZYVSIWTE
JQZVYSIWTE
view   save

correct output
-1
view   save

user output
-1
view   save

Test 13

Group: 1

Verdict: ACCEPTED

input
ABABABABA
ABA
view   save

correct output
4
7 5 3 1
view   save

user output
4
3 7 5 1
view   save

Test 14

Group: 1

Verdict: ACCEPTED

input
AAAAAAAAAA
AAAAAAAAAB
view   save

correct output
-1
view   save

user output
-1
view   save

Test 15

Group: 2

Verdict: ACCEPTED

input
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB...
B
view   save

correct output
100
100 99 98 97 96 95 94 93 92 91...
view   save

user output
100
100 99 98 97 96 95 94 93 92 91...
view   save

Test 16

Group: 2

Verdict: ACCEPTED

input
BABABAAAAAAAAAAAAAAAAAABABAAAA...
BABAAAAAAA
view   save

correct output
36
87 43 24 1 91 79 69 68 67 66 6...
view   save

user output
15
87 70 53 34 43 15 24 10 1 91 7...
view   save

Test 17

Group: 2

Verdict: ACCEPTED

input
ABABAAAAABABBBBAAAABBBBAABBBBB...
ABABAAAAABABBBBAAAABBBBAABBBBB...
view   save

correct output
22
51 50 43 41 31 28 26 24 21 20 ...
view   save

user output
5
51 50 43 41 1
view   save

Test 18

Group: 2

Verdict: ACCEPTED

input
AAABABAAAABBBBBABABBAABBABABBA...
AABABAAAABBBBBABABBAABBABABBAB...
view   save

correct output
2
1 2
view   save

user output
2
1 2
view   save

Test 19

Group: 2

Verdict: ACCEPTED

input
AABABBBBBBAABBABABBBBBBAABBAAA...
AABABBBBBBAABBABABBBBBBAABBAAA...
view   save

correct output
1
1
view   save

user output
1
1
view   save

Test 20

Group: 2

Verdict: ACCEPTED

input
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSS...
S
view   save

correct output
100
100 99 98 97 96 95 94 93 92 91...
view   save

user output
100
100 99 98 97 96 95 94 93 92 91...
view   save

Test 21

Group: 2

Verdict: ACCEPTED

input
NNNININIMNIMKLMXCNIMKLMXCDEIMK...
NIMKLMXCDE
view   save

correct output
18
1 2 3 74 5 79 58 7 84 64 37 10...
view   save

user output
18
74 79 84 58 64 37 27 1 2 3 5 7...
view   save

Test 22

Group: 2

Verdict: ACCEPTED

input
VYQFNHMVTKOEYCXWINLKLHVFMEPQEU...
VYQFNHMVTKOEYCXWINLKLHVFMEPQEU...
view   save

correct output
3
51 2 1
view   save

user output
2
51 1
view   save

Test 23

Group: 2

Verdict: ACCEPTED

input
IISNROLHLOJIWPTVFHFLUQRIROVLYP...
ISNROLHLOJIWPTVFHFLUQRIROVLYPM...
view   save

correct output
2
1 2
view   save

user output
2
1 2
view   save

Test 24

Group: 2

Verdict: ACCEPTED

input
WPMEMERJXXADLKONUZPUUFTPSXDHIV...
WPMEMERJXXADLKONUZPUUFTPSXDHIV...
view   save

correct output
1
1
view   save

user output
1
1
view   save

Test 25

Group: 2

Verdict: ACCEPTED

input
LNSBGZAWFJZAWFJWFJLNSBLNSBGZAL...
LNSBGZAWFJ
view   save

correct output
-1
view   save

user output
-1
view   save

Test 26

Group: 2

Verdict: ACCEPTED

input
IPIPYFUMRIPYFUMRLPIIIPYFIPYFUM...
IPYFUMRLPSYSBQWHGXQWLHBXMXXEYB...
view   save

correct output
-1
view   save

user output
-1
view   save

Test 27

Group: 2

Verdict: ACCEPTED

input
ABABABABABABABABABABABABABABAB...
ABA
view   save

correct output
49
97 95 93 91 89 87 85 83 81 79 ...
view   save

user output
49
95 91 87 83 79 75 71 67 63 59 ...
view   save

Test 28

Group: 2

Verdict: ACCEPTED

input
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...
view   save

correct output
-1
view   save

user output
-1
view   save

Test 29

Group: 3

Verdict: ACCEPTED

input
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB...
view   save

correct output
1000
1000 999 998 997 996 995 994 9...
view   save

user output
1000
1000 999 998 997 996 995 994 9...
view   save

Test 30

Group: 3

Verdict: ACCEPTED

input
BBBBBBBBAABBBBBBBBAABBBBBBBAAB...
view   save

correct output
218
1 626 607 519 415 5 975 957 92...
view   save

user output
162
975 984 958 966 950 935 926 92...
view   save

Test 31

Group: 3

Verdict: ACCEPTED

input
AABBBABAABABAAABBAAAAAAABBBAAB...
view   save

correct output
55
569 639 403 761 663 437 172 90...
view   save

user output
25
761 569 639 663 511 399 403 30...
view   save

Test 32

Group: 3

Verdict: ACCEPTED

input
ABBAAABAAABAAAAABBABABBABBABBB...
view   save

correct output
2
2 1
view   save

user output
2
2 1
view   save

Test 33

Group: 3

Verdict: ACCEPTED

input
BAAABBABBBAAAABAAAABBBBABAABAA...
view   save

correct output
1
1
view   save

user output
1
1
view   save

Test 34

Group: 3

Verdict: ACCEPTED

input
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUU...
view   save

correct output
1000
1000 999 998 997 996 995 994 9...
view   save

user output
1000
1000 999 998 997 996 995 994 9...
view   save

Test 35

Group: 3

Verdict: ACCEPTED

input
KSBMRKKSBMRZXBDKSKSBMRZXBDAMRZ...
view   save

correct output
178
723 731 1 935 857 820 760 735 ...
view   save

user output
178
985 979 977 976 965 960 959 95...
view   save

Test 36

Group: 3

Verdict: ACCEPTED

input
ILYLILYLVJILYLVJZCCQDLFRLSXZDM...
view   save

correct output
21
671 54 747 504 113 1 856 764 5...
view   save

user output
21
856 671 608 747 764 504 535 41...
view   save

Test 37

Group: 3

Verdict: ACCEPTED

input
ZZJZNKHDLJBPXIAZNJIIGBEEJFSDAF...
view   save

correct output
2
1 2
view   save

user output
2
1 2
view   save

Test 38

Group: 3

Verdict: ACCEPTED

input
FIMWTOLSRKOWYDPCOFUJZMXJEJFKSU...
view   save

correct output
1
1
view   save

user output
1
1
view   save

Test 39

Group: 3

Verdict: ACCEPTED

input
AIVHCGUMKSTIYBRNPONXHRFVBKPYHX...
view   save

correct output
-1
view   save

user output
-1
view   save

Test 40

Group: 3

Verdict: ACCEPTED

input
QPMSLIDCLFLBEXGVVQQNSVKJYXGETC...
view   save

correct output
-1
view   save

user output
-1
view   save

Test 41

Group: 3

Verdict: ACCEPTED

input
ABABABABABABABABABABABABABABAB...
view   save

correct output
499
997 995 993 991 989 987 985 98...
view   save

user output
499
995 991 987 983 979 975 971 96...
view   save

Test 42

Group: 3

Verdict: ACCEPTED

input
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...
view   save

correct output
-1
view   save

user output
-1
view   save