suarez hacker earth
unknown
java
2 years ago
1.5 kB
17
Indexable
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
Segment[] segments = new Segment[N];
long max = Long.MIN_VALUE;
long min = Long.MAX_VALUE;
for (int i = 0; i < N; i++) {
long start = scanner.nextLong();
long end = scanner.nextLong();
if(min > start){
min = start;
}
if(max < end){
max = end;
}
segments[i] = new Segment(start, end);
}
Arrays.sort(segments, new RangeSort());
long Q = scanner.nextLong();
for (long i = 0; i < Q; i++) {
long K = scanner.nextLong();
long X = scanner.nextLong();
long count = 0;
long result = -1;
if((X > max) || (X < min)){
System.out.println(-1);
continue;
}
for (Segment segment : segments) {
if (segment.start <= X && X <= segment.end) {
count++;
if (count == K) {
result = segment.end - segment.start + 1;
break;
}
}
}
System.out.println(result);
}
}
}
class Segment {
long start;
long end;
public Segment(long start, long end) {
this.start = start;
this.end = end;
}
}
class RangeSort implements Comparator<Segment> {
public int compare(Segment a, Segment b){
return (int)((a.end - a.start) - (b.end - b.start));
}
}
Editor is loading...
Leave a Comment