题目地址:
http://acm.hdu.edu.cn/showproblem.php?pid=5443
题目大意:
输入一个count作为测试的组数,再输入num作为每组测试的数据数,接着输入全部的数据,再输入问题的数量,然后输入问题的左右边界,求左右边界范围内的最大值。
分析:
水题,要注意题目输入的下标和数组下标的处理,注意这道题可以直接用暴力解出来。(10组测试,每组1000个数据,每组1000个问题,上限进行10^7次运算,而计算机每秒钟可以进行10^8次运算,所以可以直接暴力)
上代码:
import java.util.Arrays;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int count = input.nextInt();
for(int i=0;i<=count-1;i++){
//开始每组测试数据
int num = input.nextInt();
int[] data = new int[num];
for(int j=0;j<=num-1;j++){
data[j] = input.nextInt();
}
int question = input.nextInt();
for(int j=0;j<=question-1;j++){
int start = input.nextInt()-1;
int end = input.nextInt()-1;
int[] res = new int[end-start+1];
for(int k=start,z=0;k<=end;k++,z++){
res[z] = data[k];
}
Arrays.sort(res);
System.out.println(res[end-start]);
}
}
}
}