suarez hacker earth
unknown
java
2 years ago
1.5 kB
9
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