Submission details
Task:Forest density
Sender:aalto26dm_040
Submission time:2026-09-21 17:41:29 +0300
Language:Python3 (PyPy3)
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.04 sdetails
#2ACCEPTED0.65 sdetails
#3ACCEPTED0.57 sdetails

Code

buffer = input().split()
n = int(buffer[0])
q = int(buffer[1])
forest = []
for _ in range(n):
    forest.append(input())

rectangles = [[0 for _ in range(n+1)] for _ in range(n+1)]
for i in range(1,n+1):
    line_count = 0
    for j in range(1,n+1):
        if forest[i-1][j-1] == '*':
            line_count += 1
        rectangles[i][j] += line_count
        if i > 0:
            rectangles[i][j] += rectangles[i-1][j]

for _ in range(q):
    query = list(map(int,input().split()))
    res = rectangles[query[2]][query[3]]
    res += rectangles[query[0]-1][query[1]-1]
    res -= rectangles[query[0]-1][query[3]]
    res -= rectangles[query[2]][query[1]-1]
    print(res)
#print(rectangles)

Test details

Test 1

Verdict: ACCEPTED

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

correct output
10
14
5
7
8
...

user output
10
14
5
7
8
...

Test 2

Verdict: ACCEPTED

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

correct output
41079
2824
15631
1548
8483
...

user output
41079
2824
15631
1548
8483
...

Test 3

Verdict: ACCEPTED

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

correct output
1000000
1000000
1000000
1000000
1000000
...

user output
1000000
1000000
1000000
1000000
1000000
...