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 + " "); } } |
English