6800.Forest Queries

Time Limit: 1s Memory Limit: 512MB

You are given an $n \times n$ grid representing the map of a forest. Each square is either empty or contains a tree. The upper-left square has coordinates $(1,1)$ , and the lower-right square has coordinates $(n,n)$ .

Your task is to process $q$ queries of the form: how many trees are inside a given rectangle in the forest?

Input Format(From the terminal/stdin)

The first input line has two integers $n$ and $q$ : the size of the forest and the number of queries.

Then, there are $n$ lines describing the forest. Each line has $n$ characters: . is an empty square and * is a tree.

Finally, there are $q$ lines describing the queries. Each line has four integers $y_1$ , $x_1$ , $y_2$ , $x_2$ corresponding to the corners of a rectangle.

  • $1 \le n \le 1000$
  • $1 \le q \le 2 \cdot 10^5$
  • $1 \le y_1 \le y_2 \le n$
  • $1 \le x_1 \le x_2 \le n$

Output Format(To the terminal/stdout)

Print the number of trees inside each rectangle.

Sample Input

Copy
4 3
.*..
*.**
**..
****
2 2 3 4
3 1 3 1
1 1 2 2
 · \n
    \n
    \n
    \n
    \n
 · · · \n
 · · · \n
 · · · \n

Sample Output

Copy
3
1
2
 \n
 \n
 \n
Source: CSES, Range Queries, 1652

Submit

请先 登录

© 2025 FAQs