Advertisement
dzocesrce

[NP] Risk

Apr 14th, 2025
409
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.14 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.InputStream;
  3. import java.io.InputStreamReader;
  4. import java.util.Collections;
  5. import java.util.List;
  6. import java.util.stream.Collectors;
  7. import java.util.ArrayList;
  8. import java.util.Comparator;
  9. import java.util.List;
  10. import java.util.stream.Collectors;
  11.  
  12. class Round {
  13.     private List<Integer> player1;
  14.     private List<Integer> player2;
  15.  
  16.     public Round(List<Integer> player1, List<Integer> player2) {
  17.         this.player1 = player1;
  18.         this.player2 = player2;
  19.     }
  20.  
  21.     public List<Integer> getPlayer1() {
  22.         return player1;
  23.     }
  24.  
  25.     public List<Integer> getPlayer2() {
  26.         return player2;
  27.     }
  28.  
  29.     public int player1Victorious(){
  30.         for(int i=0;i<3;i++){
  31.             if(player1.get(i)<=player2.get(i))
  32.                 return 0;
  33.         }
  34.         return 1;
  35.     }
  36.  
  37.     public static Round create(String s) {
  38.         String[] parts= s.split(";");
  39.         List<Integer> player1= new ArrayList<>();
  40.         String[] player1_dices = parts[0].split("\\s+");
  41.         for(int i=0;i<3;i++)
  42.             player1.add(Integer.parseInt(player1_dices[i]));
  43.         List<Integer> player2= new ArrayList<>();
  44.         String[] player2_dices = parts[1].split("\\s+");
  45.         for(int i=0;i<3;i++)
  46.             player2.add(Integer.parseInt(player2_dices[i]));
  47.  
  48.         player1= player1.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
  49.         player2= player2.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
  50.         return new Round(player1,player2);
  51.     }
  52.  
  53. }
  54.  
  55.  
  56. class Risk {
  57.     private List<Round> rounds;
  58.  
  59.     public int processAttacksData(InputStream in) {
  60.         BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in));
  61.         this.rounds= bufferedReader.lines().map(i->Round.create(i)).collect(Collectors.toList());
  62.  
  63.         return rounds.stream().mapToInt(i->i.player1Victorious()).sum();
  64.     }
  65.    
  66. }
  67.  
  68.  
  69. public class RiskTester {
  70.     public static void main(String[] args) {
  71.  
  72.         Risk risk = new Risk();
  73.  
  74.         System.out.println(risk.processAttacksData(System.in));
  75.  
  76.     }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement