Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.Comparator;
- class Game {
- int number;
- int score;
- int deadline;
- public Game(int number, int score, int deadline) {
- this.number = number;
- this.score = score;
- this.deadline = deadline;
- }
- public int getScore() {
- return score;
- }
- @Override
- public String toString() {
- return "Game{" +
- "number=" + number +
- ", score=" + score +
- ", deadline=" + deadline +
- '}';
- }
- }
- public class TestClass {
- public static void main(String[] args) {
- Game game3 = new Game(3, 76, 3);
- Game game4 = new Game(4, 66, 2);
- Game game1 = new Game(1, 52, 2);
- Game game6 = new Game(6, 51, 4);
- Game game5 = new Game(5, 47, 2);
- Game game2 = new Game(2, 23, 1);
- ArrayList<Game> inputData = new ArrayList<>();
- inputData.add(game3);
- inputData.add(game4);
- inputData.add(game1);
- inputData.add(game6);
- inputData.add(game5);
- inputData.add(game2);
- inputData.sort(Comparator.comparing(Game::getScore));
- ArrayList<Integer> result = new ArrayList<>();
- ArrayList<Integer> deadlines = new ArrayList<>();
- for(Game game : inputData) {
- if (!deadlines.contains(game.deadline))
- deadlines.add(game.deadline);
- }
- int previousDeadline = -1;
- for(int i = inputData.size()-1; i >= 0; i--) {
- int currentDeadline = inputData.get(i).deadline;
- if(previousDeadline != -1 && previousDeadline < currentDeadline) {
- for(int j = 1; j < currentDeadline; j++) {
- deadlines.remove(Integer.valueOf(j));
- }
- }
- if (deadlines.contains(currentDeadline) ) {
- result.add(inputData.get(i).number);
- previousDeadline = inputData.get(i).deadline;
- }
- }
- System.out.println(result);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement