CSES - Datatähti 2023 alku - Results
Submission details
Task:Lehmät
Sender:Finnduino
Submission time:2022-10-31 21:38:20 +0200
Language:Python3 (PyPy3)
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED28
#2ACCEPTED72
Test results
testverdicttimegroup
#1ACCEPTED0.04 s1, 2details
#2ACCEPTED0.04 s1, 2details
#3ACCEPTED0.04 s1, 2details
#4ACCEPTED0.04 s1, 2details
#5ACCEPTED0.04 s1, 2details
#6ACCEPTED0.05 s2details
#7ACCEPTED0.05 s2details
#8ACCEPTED0.05 s2details
#9ACCEPTED0.05 s2details

Code

split = input().split()

x = int(split[1])
y= int(split[0])

map_string = ""

for p in range(1, y+1, 1):
    map_string += input()


map_string = [*map_string.strip()]
counter = 0
inFence = False
cowCounter = 0
wallCount = 0
inWall = False
def flipState():
    global inFence
    if inFence:
        inFence = False
    else:
        inFence = True

#Iterate through all the values of the array
for yCounter in range(0,y,1):
    for xCounter in range(0,x,1):
        #Checks if iterating through pen wall, and skips accordingly
        if map_string[counter] == "*" and map_string[counter+1]=="*":
            #Making sure if no outline around pen
            if map_string[counter] == "*" and map_string[counter+1]=="*" and map_string[counter+2]=="*":
                yCounter +=1
                counter = (yCounter)*x
                wallCount +=1
                inWall = True
                if(wallCount > 1):
                    break
        if(not inWall):
            #Checks if current character is a wall and flips the state accordingly
            if (map_string[counter-1] != "*" and map_string[counter] == "*" and map_string[counter+1] != "*"):
                flipState()
            elif (map_string[counter-1] == "*" and map_string[counter] == "*" and map_string[counter+1] != "*"):
                flipState()
            elif (map_string[counter] == "*"):
                flipState()
        
        #Looks for cows
            if inFence and map_string[counter] == "@":
                cowCounter +=1
            counter += 1
        else:
            inWall = False



print(cowCounter)

Test details

Test 1

Group: 1, 2

Verdict: ACCEPTED

input
3 3
***
*.*
***

correct output
0

user output
0

Test 2

Group: 1, 2

Verdict: ACCEPTED

input
3 3
***
*@*
***

correct output
1

user output
1

Test 3

Group: 1, 2

Verdict: ACCEPTED

input
5 10
...@......
..******..
@.*@@@@*.@
..******..
...

correct output
4

user output
4

Test 4

Group: 1, 2

Verdict: ACCEPTED

input
10 10
@@...@.@@@
..@@.@@..@
@.*******@
..*@....*.
...

correct output
11

user output
11

Test 5

Group: 1, 2

Verdict: ACCEPTED

input
10 10
**********
*@@@@@@@@*
*@@@@@@@@*
*@@@@@@@@*
...

correct output
64

user output
64

Test 6

Group: 2

Verdict: ACCEPTED

input
100 100
.........................@.......

correct output
60

user output
60

Test 7

Group: 2

Verdict: ACCEPTED

input
100 100
..@@..........@......@....@@.....

correct output
1507

user output
1507

Test 8

Group: 2

Verdict: ACCEPTED

input
100 100
.@..@@..@@.@..@..@..@@..@..@.....

correct output
3348

user output
3348

Test 9

Group: 2

Verdict: ACCEPTED

input
100 100
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@...

correct output
7225

user output
7225