przykladowe-projekty/plakatowanie
Arkadiusz Charliński 87f735d651 plakatowanie.java
Program wczyta ze standardowego wejścia opisy budynków, wyznaczy minimalną liczbę plakatów potrzebnych do całkowitego pokrycia ich północnych ścian, wypisze wynik na standardowe wyjście. Budynki są ze sobą połączone.
Dane wpisujemy według przykładu:
3
1 4
2 6
1 2
2021-11-29 04:46:01 +01:00

37 lines
1.0 KiB
Plaintext

import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;
public class plakatowanie{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
System.out.println("Number of buildings: ");
int liczba_budynkow = in.nextInt();
System.out.println("buildings: ");
int budynki[][] = new int[liczba_budynkow][2];
for (int i = 0; i < liczba_budynkow;i++){
for (int j = 0; j < 2; j++){
budynki[i][j] = in.nextInt();
}
}
List<Integer> plakaty = new ArrayList<>();
int wynik = 0;
for (int i = 0; i < liczba_budynkow; i++) {
while ((plakaty.size() > 0) && (plakaty.get(plakaty.size()-1) > budynki[i][1])){
plakaty.remove(plakaty.size()-1);
}
if ((plakaty.size() == 0) || (plakaty.get(plakaty.size()-1) < budynki[i][1])){
plakaty.add(budynki[i][1]);
wynik+=1;
}
}
System.out.println(wynik);
}
}