Advertisement
Guest User

Untitled

a guest
Nov 12th, 2020
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.07 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Comparator;
  3.  
  4. class Game {
  5.     int number;
  6.     int score;
  7.     int deadline;
  8.  
  9.     public Game(int number, int score, int deadline) {
  10.         this.number = number;
  11.         this.score = score;
  12.         this.deadline = deadline;
  13.     }
  14.  
  15.     public int getScore() {
  16.         return score;
  17.     }
  18.  
  19.     @Override
  20.     public String toString() {
  21.         return "Game{" +
  22.                 "number=" + number +
  23.                 ", score=" + score +
  24.                 ", deadline=" + deadline +
  25.                 '}';
  26.     }
  27. }
  28.  
  29. public class TestClass {
  30.  
  31.     public static void main(String[] args) {
  32.         Game game3 = new Game(3, 76, 3);
  33.         Game game4 = new Game(4, 66, 2);
  34.         Game game1 = new Game(1, 52, 2);
  35.         Game game6 = new Game(6, 51, 4);
  36.         Game game5 = new Game(5, 47, 2);
  37.         Game game2 = new Game(2, 23, 1);
  38.  
  39.         ArrayList<Game> inputData = new ArrayList<>();
  40.         inputData.add(game3);
  41.         inputData.add(game4);
  42.         inputData.add(game1);
  43.         inputData.add(game6);
  44.         inputData.add(game5);
  45.         inputData.add(game2);
  46.         inputData.sort(Comparator.comparing(Game::getScore));
  47.  
  48.         ArrayList<Integer> result = new ArrayList<>();
  49.  
  50.         ArrayList<Integer> deadlines = new ArrayList<>();
  51.         for(Game game : inputData) {
  52.             if (!deadlines.contains(game.deadline))
  53.                 deadlines.add(game.deadline);
  54.         }
  55.  
  56.         int previousDeadline = -1;
  57.         for(int i = inputData.size()-1; i >= 0; i--) {
  58.             int currentDeadline = inputData.get(i).deadline;
  59.             if(previousDeadline != -1 && previousDeadline < currentDeadline) {
  60.                 for(int j = 1; j < currentDeadline; j++) {
  61.                     deadlines.remove(Integer.valueOf(j));
  62.                 }
  63.             }
  64.  
  65.             if (deadlines.contains(currentDeadline) ) {
  66.                 result.add(inputData.get(i).number);
  67.                 previousDeadline = inputData.get(i).deadline;
  68.             }
  69.         }
  70.         System.out.println(result);
  71.     }
  72. }
  73.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement