CSES - Datatähti 2023 alku - Results
Submission details
Task:Lehmät
Sender:DualRed
Submission time:2022-10-31 15:47:35 +0200
Language:CPython3
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED28
#2ACCEPTED72
Test results
testverdicttimegroup
#1ACCEPTED0.02 s1, 2details
#2ACCEPTED0.02 s1, 2details
#3ACCEPTED0.02 s1, 2details
#4ACCEPTED0.02 s1, 2details
#5ACCEPTED0.02 s1, 2details
#6ACCEPTED0.02 s2details
#7ACCEPTED0.02 s2details
#8ACCEPTED0.02 s2details
#9ACCEPTED0.02 s2details

Code

def IsOutOfBounds(x, y):
    if (x < 0) or (y < 0) or (x >= width) or (y >= height):
        return True
    return False


dimensionsInput = input()
height = int(dimensionsInput.split(" ")[0])
width = int(dimensionsInput.split(" ")[1])

fieldMap = []
for i in range(0, height):
    fieldMap.append(input().strip())

leftEdge, rightEdge, topEdge, bottomEdge = -1, -1, -1, -1
# Find the top left corner of the pen
found = False
for y in range(height):
    if found: break
    for x in range(width):
        if fieldMap[y][x] == "*":
            leftEdge = x
            topEdge = y
            found = True
            break
# Find the right and bottom edge
rightEdge = leftEdge
bottomEdge = topEdge
while not IsOutOfBounds(rightEdge + 1, topEdge):
    if(fieldMap[topEdge][rightEdge + 1] == "*"):
        rightEdge += 1
    else:
        break
while not IsOutOfBounds(leftEdge, bottomEdge + 1):
    if(fieldMap[bottomEdge + 1][leftEdge] == "*"):
        bottomEdge += 1
    else:
        break

# Count the cows
count = 0
for y in range(topEdge + 1, bottomEdge):
    for x in range(leftEdge + 1, rightEdge):
        if fieldMap[y][x] == "@":
            count += 1

print(count)


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