Introduction
Input
Output
输出共 m 行,每行一个整数,表示对应查询的答案。
Sample
input
6 2 10
5 24
10 24
11 24
34 24
35 24
35 48
1
2
output
3
3
Solution
package csp;
import java.util.Scanner;
public class Main20220302 {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
int n=s.nextInt();int m=s.nextInt();int k=s.nextInt();
int[] arr=new int[400005];
for(int i=0;i<n;i++){
int x=s.nextInt();int y=s.nextInt();
if(x-y+1<=1){
arr[1]+=1;
}else {
arr[x-y+1]+=1;
}
arr[x+1]-=1;
}
for(int i=1;i<400005;i++){
arr[i]=arr[i]+arr[i-1];
}
while (m--!=0){
System.out.println(arr[s.nextInt()+k]);
}
}
}
Experience
第一次使用按照非常常规的思路流程得了70分,然后显示超时,其实判断的过程都很清楚了,无非就是出现了重复判断的情况。
做csp第二题的,确实要想清楚了再写代码,有时候往往思路觉得是没问题的,换一个个小小的角度结果完全不同,这个小小的角度也可能是更容易理解的,也更容易正确。
这道题,体验到csp做第二题的经验。要得到100分的话。