| Task: | Forest density |
| Sender: | aalto26dm_045 |
| Submission time: | 2026-09-21 17:40:02 +0300 |
| Language: | Python3 (PyPy3) |
| Status: | READY |
| Result: | ACCEPTED |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.04 s | details |
| #2 | ACCEPTED | 0.29 s | details |
| #3 | ACCEPTED | 0.25 s | details |
Code
import sys
input = sys.stdin.read().split()
n = int(input[0])
q = int(input[1])
p = [([0]*(n+1)) for _ in range(n+1)]
for i in range(1,n+1):
tmp = input[i+1]
for j in range(1,n+1):
if tmp[j-1] =="*":
p[i][j] = 1 +p[i-1][j]+ p[i][j-1] - p[i-1][j-1]
else :
p[i][j] = p[i-1][j]+ p[i][j-1] - p[i-1][j-1]
i = 2+n
for _ in range(q):
y1,x1,y2,x2 = int(input[i]), int(input[i+1]), int(input[i+2]), int(input[i+3])
print(p[y2][x2] - p[y1-1][x2] - p[y2][x1-1] + p[y1-1][x1-1])
i = i+4Test 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 ... |
