CSES - Aalto Competitive Programming 2024 - wk4 - Mon - Results
Submission details
Task:Forest density
Sender:Mojojijo
Submission time:2024-09-23 17:29:20 +0300
Language:Python3 (PyPy3)
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.04 sdetails
#2ACCEPTED0.49 sdetails
#3ACCEPTED0.43 sdetails

Code

def forest_density(n,q,forest,barr):

    prefix_sum = [[0] * (n + 1) for _ in range(n + 1)]

    
    for i in range(1, n + 1):

        for j in range(1, n + 1):

            prefix_sum[i][j] = prefix_sum[i-1][j] + prefix_sum[i][j-1] - prefix_sum[i-1][j-1]

            if forest[i-1][j-1] == '*':
                prefix_sum[i][j] += 1

    for y1, x1, y2, x2 in barr:
        result = prefix_sum[y2][x2] - prefix_sum[y1-1][x2] - prefix_sum[y2][x1-1] + prefix_sum[y1-1][x1-1]
        print(result)


n, q = map(int, input().split())
forest = [input().strip() for _ in range(n)]

barr = []
for _ in range(q):
        y1, x1, y2, x2 = map(int, input().split())
        barr.append([y1, x1, y2, x2])

forest_density(n,q,forest,barr)

# Input:
# 4 3
# .*..
# *.**
# **..
# ****
# 2 2 3 4
# 3 1 3 1
# 1 1 2 2
# Output:
# 3
# 1
# 2

Test details

Test 1

Verdict: ACCEPTED

input
10 100
**.*.*.**.
*.**.*..*.
.*****.**.
**....***.
...

correct output
10
14
5
7
8
...

user output
10
14
5
7
8
...
Truncated

Test 2

Verdict: ACCEPTED

input
1000 200000
**.**.****..**.***..**.***.**....

correct output
41079
2824
15631
1548
8483
...

user output
41079
2824
15631
1548
8483
...
Truncated

Test 3

Verdict: ACCEPTED

input
1000 200000
******************************...

correct output
1000000
1000000
1000000
1000000
1000000
...

user output
1000000
1000000
1000000
1000000
1000000
...
Truncated