序列查询新解CSP

257 阅读1分钟
package NO_2;
import java.util.*;
public class CXJH_2 {
	public static void main(String[] args) {
		Scanner myScanner = new Scanner(System.in);
		int N = myScanner.nextInt();
		int M = myScanner.nextInt();
		int K = myScanner.nextInt();
                int P = 200010;
		int[] d = new int[P];
		for(int i = 0; i < N; i++) {
			int ti = myScanner.nextInt();
			int ci = myScanner.nextInt();
			//差分
			d[Math.max(ti - K - ci + 1,1)]++;
			d[Math.max(ti - K + 1,1)]--;
		}
		
		
		for(int i = 1; i < P; i++) {
			d[i] = d[i] + d[i - 1];
		}
		
		for(int i = 0; i < M; i++) {
			int q = myScanner.nextInt();
			System.out.println(d[q]);
		}
	}
}