Hdu 5443 The Water Problem (Changchun cyber competition-violence)
Problem Description In Land waterless, water is a very limited resource. People always fight for the biggest source of water. Given a sequence of water sources A1, a2, a3,..., Representing the size of the water source. Given a set of queries each containing 2 Integers L And R , Please find out the biggest water source Al And Ar .
Input First you are given an integer T (T ≤ 10) Indicating the number of test cases. For each test case, there is a number N (0 ≤n ≤1000) On a line representing the number of water sources. N Integers follow, respectively A1, a2, a3,..., , And each integer is in {1,..., 106} . On the next line, there is a number Q (0 ≤ q≤1000) Representing the number of queries. After that, there will be Q Lines with two integers L And R (1 ≤ l ≤ r ≤ n) Indicating the range of which you should find out the biggest water source.
Output For each query, output an integer representing the size of the biggest water source.
Sample Input
3 1 100 1 1 1 5 1 2 3 4 5 5 1 2 3 2 4 3 3 3 3 1 999999 1 4 1 1 1 2 2 3 3 3
Sample Output
100 2 3 4 4 5 1 999999 999999 1
Source 2015 ACM/ICPC Asia Regional Changchun Online
Recommend hujie | We have carefully selected several similar problems for you: 56645663566256615660 question: Give the water volume of n pools and find the maximum water volume in the interval.
The method of Line Segment tree is normally used to calculate the maximum value of the range. However, the data volume of this question is not large, and all the violence will pass ~
For details, see the code.
#include
#include
using namespace std;int main(){ int t; int a[1010],l,r; scanf("%d",&t); while (t--) { int n; scanf("%d",&n); for (int i=1; i<=n; i++) { scanf("%d",&a[i]); } int q; scanf("%d",&q); while (q--) { int Max=0; scanf("%d%d",&l,&r); for (int i=l; i<=r; i++) { if (a[i]>Max) Max=a[i]; } cout<