Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.Collection;
- import java.util.Collections;
- import java.util.Comparator;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.Scanner;
- import java.util.TreeSet;
- import javax.swing.text.html.HTMLDocument.Iterator;
- public class TaskD {
- public static void main(String[] args) {
- Scanner s = new Scanner(System.in);
- int q = s.nextInt();
- while(q-- > 0) {
- int n = s.nextInt();
- int[] monsters = new int[n];
- int bossMonster = 0;
- for(int i=0;i<n;i++) {
- monsters[i] = s.nextInt();
- bossMonster = Math.max(bossMonster, monsters[i]);
- }
- int m = s.nextInt();
- HashMap<Integer,Integer> map = new HashMap<Integer,Integer>(n);
- int bossHero = 0;
- for(int i=0;i<m;i++) {
- int str = s.nextInt();
- int end = s.nextInt();
- bossHero = Math.max(bossHero, str);
- if(map.containsKey(end)) {
- if(map.get(end) < str) {
- map.replace(end, str);
- }
- } else {
- map.put(end,str);
- }
- }
- ArrayList<Hero> heros = new ArrayList<Hero>();
- for(int k : map.keySet()) {
- heros.add(new Hero(map.get(k),k));
- }
- Comparator<Hero> comp = new Comparator<Hero>() {
- public int compare(Hero h1, Hero h2) {
- return Integer.compare(h1.end, h2.end);
- }
- };
- Collections.sort(heros,comp);
- int max = 0;
- for(int i = heros.size()-1;i >= 0;i--) {
- int curr = heros.get(i).power;
- max = Math.max(max, curr);
- heros.get(i).power = max;
- }
- TreeSet<Hero> corMap = new TreeSet<Hero>(comp);
- corMap.addAll(heros);
- if(bossMonster > bossHero) {
- System.out.println(-1);
- continue;
- }
- int con = 1;
- int maxMon = 0;
- int days = 1;
- for(int i=0;i<n;i++) {
- int curr = monsters[i];
- maxMon = Math.max(maxMon, curr);
- Hero dummy = new Hero(0,con);
- Hero best = corMap.ceiling(dummy);
- if(best != null && best.power >= maxMon) {
- con++;
- } else {
- maxMon = 0;
- con = 1;
- days++;
- i--;
- }
- }
- System.out.println(days);
- }
- }
- }
- class Hero {
- int power, end;
- public Hero(int power, int end) {
- this.power = power;
- this.end = end;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement