Submission #726092

#TimeUsernameProblemLanguageResultExecution timeMemory
726092vjudge1Exhibition (JOI19_ho_t2)Java
50 / 100
1076 ms24592 KiB
import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; import java.util.Arrays; import java.util.Comparator; // User defined Pair class class Pair { int x; int y; // Constructor public Pair(int x, int y) { this.x = x; this.y = y; } } /*// class to define user defined comparator class ArrayOfPairsSorter { static void sort(Pair[] arr) { Comparator<Pair> comparator = new Comparator<>() { @Override public int compare(Pair p1, Pair p2) { if (p1.y - p2.y == 0) { return p1.x - p2.x; } else { return p1.y - p2.y; } } }; Arrays.sort(arr, comparator); } } class MergeSort{ static void sort(Pair[] arr) { while } static void breaker(Pair[] arr){ } static void merge(Pair[] arr1, Pair[] arr2, Pair[] temp) { while (arr1.length > 0 && arr2.length > 0) { if (arr1[0].y < arr2[0].y){ temp } else if (arr1[0].y > arr2[0].y) { } else { } } } }*/ class SortTest { public static void mergeSort(Pair[] elements) { int n = elements.length; Pair[] temp = new Pair[n]; mergeSortHelper(elements, 0, n - 1, temp); } private static void mergeSortHelper(Pair[] elements, int from, int to, Pair[] temp) { if (from < to) { int middle = (from + to) / 2; mergeSortHelper(elements, from, middle, temp); mergeSortHelper(elements, middle + 1, to, temp); merge(elements, from, middle, to, temp); } } private static void merge(Pair[] elements, int from, int mid, int to, Pair[] temp) { int i = from; int j = mid + 1; int k = from; while (i <= mid && j <= to) { if (elements[i].y < elements[j].y) { temp[k] = elements[i]; i++; } else if ( elements[i].y > elements[j].y){ temp[k] = elements[j]; j++; } else { if (elements[i].x < elements[j].x) { temp[k] = elements[i]; i++; } else { temp[k] = elements[j]; j++; } } k++; } while (i <= mid) { temp[k] = elements[i]; i++; k++; } while (j <= to) { temp[k] = elements[j]; j++; k++; } for (k = from; k <= to; k++) { elements[k] = temp[k]; } } } class joi2019_ho_t2 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int N = scanner.nextInt(); int M = scanner.nextInt(); Pair[] pictures = new Pair[N]; ArrayList<Integer> frame = new ArrayList<Integer>(); for (int i = 0; i < N; i++) { pictures[i] = new Pair(scanner.nextInt(), scanner.nextInt()); } for (int i = 0; i < M; i++) { frame.add(scanner.nextInt()); } //ArrayOfPairsSorter.sort(pictures); SortTest.mergeSort(pictures); Collections.sort(frame); int frameCounter = M; for (int i = N; i > 0; i--) { if (frameCounter > 0) { if (pictures[i - 1].x <= frame.get(frameCounter - 1)) { frameCounter -= 1; } } } System.out.println(M - frameCounter); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...