Advertisement
gjorgjikirkov

Поништување Топчиња

May 28th, 2016
523
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.67 KB | None | 0 0
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6. package ponistuvanje_topcinja;
  7.  
  8. import java.io.BufferedReader;
  9. import java.io.IOException;
  10. import java.io.InputStreamReader;
  11. import java.util.ArrayDeque;
  12. import java.util.Queue;
  13. import java.util.Stack;
  14.  
  15. /**
  16.  *
  17.  * @author 141021
  18.  */
  19.  
  20. /*
  21.  Поништување топчиња Задача 1 (0 / 0)
  22.  Да се напише алгоритам со кој ќе се имплементира играта “Поништување топчиња”.
  23.  Во оваа игра на располагање имате топчиња во три различни бои (R-црвена, G-зелена и B-сина),
  24.  обележани со знакот + или -.
  25.  Поништување на топчиња може да настане само доколку тие се од иста боја и со спротивен знак.
  26.  На почеток се генерира една случајна листа со топчиња.
  27.  Ваша задача е од тој влез, како доаѓаат топчињата да направите поништување и да кажете колку,
  28.  од каков тип (+ или -) и од која боја фалат за да се
  29.  поништат сите топчиња од влезот.
  30.  
  31.  Влез: Листа од случајни топчиња и тоа во облик: боја, знак
  32.  
  33.  Име на класата (Java): Topcinja
  34.  
  35.  Делумно решение: Задачата се смета за делумно решена доколку се поминати 5 тест примери.
  36.  
  37.  Забелешка: При реализација на задачите МОРА да се користат дадените структури,
  38.  а не да се користат помошни структури како низи или сл.
  39.  
  40.  Пример влез: R+ G- G+ G+ R+ B- B+ R- G+ R- B- B+ B+ R+
  41.  
  42.  Парови кои може да се формираат од овој список се: (R+,R-); (B+, B-); (B- B+); (R+, R-); (G-, G+); (R+, R-)
  43.  
  44.  Остануваат без партнер: G+, G+, B+, R+
  45.  
  46.  Излез:
  47.  
  48.  4
  49.  
  50.  R- G- G- B-
  51.  */
  52. public class Topcinja {
  53.  
  54.     public static void main(String[] args) throws IOException {
  55.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  56.         String[] topcinja = br.readLine().split(" ");
  57.         Queue<String> queue = new ArrayDeque<>();
  58.         Stack<String> crveni = new Stack<>();
  59.         Stack<String> zeleni = new Stack<>();
  60.         Stack<String> plavi = new Stack<>();
  61.  
  62.         for (String topce : topcinja) {
  63.             queue.add(topce);
  64.         }
  65.  
  66.         for (String topce : queue) {
  67.             if (topce.equals("R+")) {
  68.                 crveni.push("R+");
  69.             } else if (topce.equals("G+")) {
  70.                 zeleni.push("G+");
  71.             } else if (topce.equals("B+")) {
  72.                 plavi.push("B+");
  73.             }
  74.         }
  75.  
  76.         for (String topce : queue) {
  77.             if (topce.equals("R-")) {
  78.                 if (!crveni.isEmpty()) {
  79.                     crveni.pop();
  80.                 }
  81.             } else if (topce.equals("G-")) {
  82.                 if (!zeleni.isEmpty()) {
  83.                     zeleni.pop();
  84.                 }
  85.             } else if (topce.equals("B-")) {
  86.                 if (!plavi.isEmpty()) {
  87.                     plavi.pop();
  88.                 }
  89.             }
  90.         }
  91.        
  92.         int preostanati = crveni.size() + zeleni.size() + plavi.size();
  93.        
  94.         System.out.println(preostanati);
  95.        
  96.         while(!crveni.isEmpty()) {
  97.             String itemToPop = crveni.pop();
  98.             if (itemToPop.charAt(1) == '-'){
  99.                 System.out.print("R+ ");
  100.             } else {
  101.                 System.out.print("R- ");
  102.             }
  103.         }
  104.        
  105.         while(!zeleni.isEmpty()) {
  106.             String itemToPop = zeleni.pop();
  107.             if (itemToPop.charAt(1) == '-'){
  108.                 System.out.print("G+ ");
  109.             } else {
  110.                 System.out.print("G- ");
  111.             }
  112.         }
  113.        
  114.         while(!plavi.isEmpty()) {
  115.             String itemToPop = plavi.pop();
  116.             if (itemToPop.charAt(1) == '-'){
  117.                 System.out.print("B+ ");
  118.             } else {
  119.                 System.out.print("B- ");
  120.             }
  121.         }
  122.        
  123.     }
  124. }
  125.  
  126. /*
  127.  Пример влез
  128.  R+ R- G+ G- B+ B-
  129.  Пример излез
  130.  0
  131.  
  132. INPUT:
  133. R+ G- G+ G+ R+ B- B+ R- G+ R- B- B+ B+ R+
  134. OUTPUT:
  135. 4
  136. R- G- G- B-
  137.  */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement