CSES - Datatähti 2025 alku - Results
Submission details
Task:Niitty
Sender:qhuge
Submission time:2024-10-30 12:55:15 +0200
Language:Python3 (PyPy3)
Status:READY
Result:4
Feedback
groupverdictscore
#1ACCEPTED4
#20
#30
#40
#50
#60
Test results
testverdicttimegroup
#1ACCEPTED0.31 s1, 2, 3, 4, 5, 6details
#2ACCEPTED0.04 s1, 2, 3, 4, 5, 6details
#3ACCEPTED0.63 s1, 2, 3, 4, 5, 6details
#4ACCEPTED0.04 s1, 2, 3, 4, 5, 6details
#5ACCEPTED0.04 s1, 2, 3, 4, 5, 6details
#6--2, 3, 4, 5, 6details
#7--2, 3, 4, 5, 6details
#8--2, 3, 4, 5, 6details
#9ACCEPTED0.04 s2, 3, 4, 5, 6details
#10--3, 4, 5, 6details
#11--3, 4, 5, 6details
#12--3, 4, 5, 6details
#13ACCEPTED0.39 s3, 4, 5, 6details
#14--4, 5, 6details
#15--4, 5, 6details
#16--4, 5, 6details
#17--4, 5, 6details
#18--5, 6details
#19--5, 6details
#20--5, 6details
#21--5, 6details
#22--6details
#23--6details
#24--6details
#25--6details

Code

n = int(input())
rivit = []
for i in range(0, n):
    r = str(input())
    rivit.append(r)
    #for i in range(0, len(rivit[len(rivit)-1])):
    #    letters.append(rivit[len(rivit) - 1][i])
def getplant(x, y, map):
    return map[y][x]
realx = n
realy = n
realz = n
duplicates = []

def find(rows, ax, bx):
    xdiff = ax[0]
    ydiff = ax[1]
    xend = bx[0]
    yend = bx[1]
    #print(rows)
    if len(rows) <= 0:
        return 0
    if len(rows[0]) <= 0:
        return 0
    x = len(rows[0]) - 1
    y = len(rows) - 1
    thisamnt = 0
 
    if len(rows) >= 2:
        #ylhäältä
        jalkeen = rows[1:len(rows)]
        cut = True
        for i in range(0, x + 1):    
            if getplant(i, 0, rows) not in "".join(jalkeen):
                cut = False
                break
        if cut:
            v = jalkeen.copy()
            v.append(f'{xdiff}:{ydiff+1};{xend}:{yend}')
            if v not in duplicates:
                #print(f'1Ensin {rows} -> {v}')
                thisamnt += 1
                duplicates.append(v)
                thisamnt += find(jalkeen, [xdiff, ydiff+1], [xend, yend])
 
        #if not (len(rows) > 2 or cut) == False:
        #alhaalta
        jalkeen = rows[0:len(rows)-1]
        cut = True
        for i in range(0, x + 1):
            #print(rows, getplant(i, 0, rows), jalkeen)
            if getplant(i, len(rows) - 1, rows) not in "".join(jalkeen):
                cut = False
                break
        if cut:
            v = jalkeen.copy()
            v.append(f'{xdiff}:{ydiff};{xend}:{yend-1}')
            if v not in duplicates:
                #print(f'2Ensin {rows} -> {v}')
                thisamnt += 1
                duplicates.append(v)
                thisamnt += find(jalkeen, [xdiff, ydiff], [xend, yend-1])
    
    if len(rows[0]) >= 2:
        #oikea
        jalkeen = []
        for x in rows:
            jalkeen.append(x[0:len(x) - 1])
        cut = True
        for i in range(0, y + 1):
            if getplant(len(rows[0]) - 1, i, rows) not in "".join(jalkeen):
                cut = False
                break
        if cut:
            v = jalkeen.copy()
            v.append(f'{xdiff}:{ydiff};{xend-1}:{yend}')
            if v not in duplicates:
                #print(f'3Ensin {rows} -> {v}')
                thisamnt += 1
                duplicates.append(v)
                thisamnt += find(jalkeen, [xdiff, ydiff], [xend-1, yend])
    
        #if not (len(rows[0]) > 2 or cut) == False:
        #vasen
        jalkeen = []
        for x in rows:
            jalkeen.append(x[1:len(x)])
        cut = True
        for i in range(0, y + 1):
            #print(rows, rows[i][0], y, jalkeen)
            if getplant(0, i, rows) not in "".join(jalkeen):
                cut = False
                break
        if cut:
            v = jalkeen.copy()
            v.append(f'{xdiff+1}:{ydiff};{xend}:{yend}')
            if v not in duplicates:
                #print(f'4Ensin {rows} -> {v}')
                thisamnt += 1
                duplicates.append(v)
                thisamnt += find(jalkeen, [xdiff+1, ydiff], [xend, yend])
 
    return thisamnt
 

maara = find(rivit, [0, 0], [realx, realy]) + 1
#for i in range(0, len(duplicates)):
#    for z in range(0, len(letters)):
#        if letters[z] not in "".join(duplicates[i]):
#            print("SOS hätätilanne")
print(maara)

Test details

Test 1

Group: 1, 2, 3, 4, 5, 6

Verdict: ACCEPTED

input
10
TNCTNPNTPC
NPPNTNTPTP
NTNTTCNTCT
NPCPNPPNTT
...

correct output
2035

user output
2035

Test 2

Group: 1, 2, 3, 4, 5, 6

Verdict: ACCEPTED

input
10
NFWQLWNWYS
DZOQJVXFPJ
CNHXPXMCQD
QRTBVNLTQC
...

correct output
9

user output
9

Test 3

Group: 1, 2, 3, 4, 5, 6

Verdict: ACCEPTED

input
10
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
...

correct output
3025

user output
3025

Test 4

Group: 1, 2, 3, 4, 5, 6

Verdict: ACCEPTED

input
10
FFFFFFFFFF
FFFFFCFFFF
FFFFFFJFFF
FFFFFFFFFF
...

correct output
12

user output
12

Test 5

Group: 1, 2, 3, 4, 5, 6

Verdict: ACCEPTED

input
1
X

correct output
1

user output
1

Test 6

Group: 2, 3, 4, 5, 6

Verdict:

input
20
BBCBUBOUOBBCUUBBCOUO
BOUCOOCUBCOOOCOBOCUO
UCCUUUOBCOCBCBUBUCOO
BUOBUCUCUOOBCOOUBUOO
...

correct output
38724

user output
(empty)

Test 7

Group: 2, 3, 4, 5, 6

Verdict:

input
20
CBGLSHGZHYZDWBNDBJUG
SMUXOJQYPXZDTMJUIWOJ
XIDSTNBGHKRKOVUVMINB
MTQGCFRUHQKALXRNCQGS
...

correct output
8334

user output
(empty)

Test 8

Group: 2, 3, 4, 5, 6

Verdict:

input
20
KKKKKKKKKKKKKKKKKKKK
KKKKKKKKKKKKKKKKKKKK
KKKKKKKKKKKKKKKKKKKK
KKKKKKKKKKKKKKKKKKKK
...

correct output
44100

user output
(empty)

Test 9

Group: 2, 3, 4, 5, 6

Verdict: ACCEPTED

input
20
AAAAAAAAXAAAAAAAAAAA
AAAWAAAAAAAAAAAAAOAA
AAAAAAAAAAAAAAAAAPAA
AAAAAAAAKAAAAAAAAAAZ
...

correct output
18

user output
18

Test 10

Group: 3, 4, 5, 6

Verdict:

input
50
GRGREEEGREGXRXXEGXXREXGRRRGRRR...

correct output
1584665

user output
(empty)

Test 11

Group: 3, 4, 5, 6

Verdict:

input
50
AITIISJUHCCRZNKSDCNQKYSQRINFWJ...

correct output
1077746

user output
(empty)

Test 12

Group: 3, 4, 5, 6

Verdict:

input
50
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO...

correct output
1625625

user output
(empty)

Test 13

Group: 3, 4, 5, 6

Verdict: ACCEPTED

input
50
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF...

correct output
1680

user output
1680

Test 14

Group: 4, 5, 6

Verdict:

input
100
NNCMDCDDCCNNNDNCMMNCDCDCCDCDNM...

correct output
25325366

user output
(empty)

Test 15

Group: 4, 5, 6

Verdict:

input
100
LIMQQIHASECROEVILNVULGWZJPPKOG...

correct output
22342463

user output
(empty)

Test 16

Group: 4, 5, 6

Verdict:

input
100
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT...

correct output
25502500

user output
(empty)

Test 17

Group: 4, 5, 6

Verdict:

input
100
QXQQQQQQQQQQQQQQQQQQQQQQQQQQQQ...

correct output
25650

user output
(empty)

Test 18

Group: 5, 6

Verdict:

input
200
NAANANMMKNKKAKMKMAKNKMNKMMNNAA...

correct output
403292767

user output
(empty)

Test 19

Group: 5, 6

Verdict:

input
200
OMYWATTLURKQPTKEFMGGYAOONXWVSC...

correct output
388111321

user output
(empty)

Test 20

Group: 5, 6

Verdict:

input
200
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC...

correct output
404010000

user output
(empty)

Test 21

Group: 5, 6

Verdict:

input
200
LLLLLLLLLLLLLLLLLHLLLLLLLLLLLL...

correct output
14159445

user output
(empty)

Test 22

Group: 6

Verdict:

input
500
VVHWVUHVHUWWWVUUUWVUUHUUWHWUVW...

correct output
15683003812

user output
(empty)

Test 23

Group: 6

Verdict:

input
500
OIMZGEQSBMBDSDXSWRFNKSGFEBBTJE...

correct output
15575906951

user output
(empty)

Test 24

Group: 6

Verdict:

input
500
IIIIIIIIIIIIIIIIIIIIIIIIIIIIII...

correct output
15687562500

user output
(empty)

Test 25

Group: 6

Verdict:

input
500
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW...

correct output
3058970930

user output
(empty)