import java.util.ArrayList; import java.util.Collections; import java.util.LinkedList; class Starcie implements Comparable <Starcie>{ public int silaPotwora, mocEliksiru, indeks; public static int liczba = 0; public Starcie(int sP, int sM){ silaPotwora = sP; mocEliksiru = sM; liczba++; indeks = liczba; } @Override public int compareTo(Starcie drugi) { return drugi.mocEliksiru - mocEliksiru; } } public class boh { public static void main(String[] args) { java.util.Scanner scanner = new java.util.Scanner(System.in); int liczbaPotworow = scanner.nextInt(), punktowZycia = scanner.nextInt(); ArrayList <Starcie> starcia = new ArrayList <Starcie> (); LinkedList <Starcie> nastepne = new LinkedList <Starcie> (); LinkedList <Integer> stoczone = new LinkedList <Integer> (); for(int i = 0; i < liczbaPotworow; i++) starcia.add(new Starcie(scanner.nextInt(), scanner.nextInt())); scanner.close(); Collections.sort(starcia); for(Starcie s : starcia){ for(Starcie n : nastepne) if ( punktowZycia - n.silaPotwora > 0 ){ stoczone.add(n.indeks); punktowZycia -= n.silaPotwora; punktowZycia += n.mocEliksiru; nastepne.remove(n); } if ( punktowZycia - s.silaPotwora > 0 ){ stoczone.add(s.indeks); punktowZycia -= s.silaPotwora; punktowZycia += s.mocEliksiru; } else nastepne.add(s); } if(stoczone.size() == starcia.size()) System.out.println("TAK"); else System.out.println("NIE"); for(Integer i : stoczone) System.out.print(i + " "); } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | import java.util.ArrayList; import java.util.Collections; import java.util.LinkedList; class Starcie implements Comparable <Starcie>{ public int silaPotwora, mocEliksiru, indeks; public static int liczba = 0; public Starcie(int sP, int sM){ silaPotwora = sP; mocEliksiru = sM; liczba++; indeks = liczba; } @Override public int compareTo(Starcie drugi) { return drugi.mocEliksiru - mocEliksiru; } } public class boh { public static void main(String[] args) { java.util.Scanner scanner = new java.util.Scanner(System.in); int liczbaPotworow = scanner.nextInt(), punktowZycia = scanner.nextInt(); ArrayList <Starcie> starcia = new ArrayList <Starcie> (); LinkedList <Starcie> nastepne = new LinkedList <Starcie> (); LinkedList <Integer> stoczone = new LinkedList <Integer> (); for(int i = 0; i < liczbaPotworow; i++) starcia.add(new Starcie(scanner.nextInt(), scanner.nextInt())); scanner.close(); Collections.sort(starcia); for(Starcie s : starcia){ for(Starcie n : nastepne) if ( punktowZycia - n.silaPotwora > 0 ){ stoczone.add(n.indeks); punktowZycia -= n.silaPotwora; punktowZycia += n.mocEliksiru; nastepne.remove(n); } if ( punktowZycia - s.silaPotwora > 0 ){ stoczone.add(s.indeks); punktowZycia -= s.silaPotwora; punktowZycia += s.mocEliksiru; } else nastepne.add(s); } if(stoczone.size() == starcia.size()) System.out.println("TAK"); else System.out.println("NIE"); for(Integer i : stoczone) System.out.print(i + " "); } } |