Advertisement
dzocesrce

[APS] Cake Shop

Aug 26th, 2023 (edited)
403
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.68 KB | None | 0 0
  1. // 2021 prv kolokvium - termin 1
  2.  
  3. import java.util.NoSuchElementException;
  4. import java.util.Scanner;
  5.  
  6. class Cake{
  7.     private String ime;
  8.     private int cena;
  9.  
  10.     public Cake(String ime, int cena) {
  11.         this.ime = ime;
  12.         this.cena = cena;
  13.     }
  14.  
  15.     public String getIme() {
  16.         return ime;
  17.     }
  18.  
  19.     public int getCena() {
  20.         return cena;
  21.     }
  22.  
  23.     @Override
  24.     public String toString() {
  25.         return String.valueOf(ime);
  26.     }
  27. }
  28. public class CakeShop
  29. {
  30.     public static void removeCakes(SLL<Cake> cakes){
  31.     SLLNode<Cake> temp= cakes.getFirst();
  32.     double prosecna_cena, suma=0;
  33.     int broj_torti= cakes.length();
  34.     while(temp!=null){
  35.         suma+= temp.element.getCena();
  36.         temp=temp.succ;
  37.     }
  38.     prosecna_cena= suma/(double)broj_torti;
  39.     //System.out.println(prosecna_cena);
  40.     temp=cakes.getFirst();
  41.     while(temp!=null){
  42.         if(temp.element.getCena()>prosecna_cena){
  43.             cakes.delete(temp);
  44.         }
  45.         temp=temp.succ;
  46.     }
  47.     }
  48.  
  49.     public static void main(String[] args)
  50.     {
  51.         Scanner input= new Scanner(System.in);
  52.         int n= Integer.parseInt(input.nextLine());
  53.         SLL<Cake> cakes= new SLL<Cake>();
  54.         for(int i=0;i<n;i++){
  55.             String[] info_torta= input.nextLine().split("\\s+");;
  56.             cakes.insertLast(new Cake(info_torta[0],Integer.parseInt(info_torta[1])));
  57.         }
  58.         removeCakes(cakes);
  59.         System.out.println(cakes.toString());
  60.     }
  61. }
  62.  
  63.  
  64.  
  65. class SLLNode<E> {
  66.     protected E element;
  67.     protected SLLNode<E> succ;
  68.  
  69.     public SLLNode(E elem, SLLNode<E> succ) {
  70.         this.element = elem;
  71.         this.succ = succ;
  72.     }
  73.  
  74.     @Override
  75.     public String toString() {
  76.         return element.toString();
  77.     }
  78. }
  79.  
  80. class SLL<E> {
  81.     private SLLNode<E> first;
  82.  
  83.     public SLL() {
  84.         this.first = null;
  85.     }
  86.  
  87.     public void deleteList() {
  88.         first = null;
  89.     }
  90.  
  91.     public int length() {
  92.         int ret;
  93.         if (first != null) {
  94.             SLLNode<E> tmp = first;
  95.             ret = 1;
  96.             while (tmp.succ != null) {
  97.                 tmp = tmp.succ;
  98.                 ret++;
  99.             }
  100.             return ret;
  101.         } else
  102.             return 0;
  103.  
  104.     }
  105.  
  106.     @Override
  107.     public String toString() {
  108.         String ret = new String();
  109.         if (first != null) {
  110.             SLLNode<E> tmp = first;
  111.             ret += tmp;
  112.             while (tmp.succ != null) {
  113.                 tmp = tmp.succ;
  114.                 ret += " " + tmp;
  115.             }
  116.         } else
  117.             ret = "Prazna lista!!!";
  118.         return ret;
  119.     }
  120.  
  121.     public void insertFirst(E o) {
  122.         SLLNode<E> ins = new SLLNode<E>(o, first);
  123.         first = ins;
  124.     }
  125.  
  126.     public void insertAfter(E o, SLLNode<E> node) {
  127.         if (node != null) {
  128.             SLLNode<E> ins = new SLLNode<E>(o, node.succ);
  129.             node.succ = ins;
  130.         } else {
  131.             System.out.println("Dadenot jazol e null");
  132.         }
  133.     }
  134.  
  135.     public void insertBefore(E o, SLLNode<E> before) {
  136.         if (first != null) {
  137.             SLLNode<E> tmp = first;
  138.             if (first == before) {
  139.                 this.insertFirst(o);
  140.                 return;
  141.             }
  142.             while (tmp.succ != before)
  143.                 tmp = tmp.succ;
  144.             if (tmp.succ == before) {
  145.                 SLLNode<E> ins = new SLLNode<E>(o, before);
  146.                 tmp.succ = ins;
  147.             } else {
  148.                 System.out.println("Elementot ne postoi vo listata");
  149.             }
  150.         } else {
  151.             System.out.println("Listata e prazna");
  152.         }
  153.     }
  154.  
  155.     public void insertLast(E o) {
  156.         if (first != null) {
  157.             SLLNode<E> tmp = first;
  158.             while (tmp.succ != null)
  159.                 tmp = tmp.succ;
  160.             SLLNode<E> ins = new SLLNode<E>(o, null);
  161.             tmp.succ = ins;
  162.         } else {
  163.             insertFirst(o);
  164.         }
  165.     }
  166.  
  167.     public E deleteFirst() {
  168.         if (first != null) {
  169.             SLLNode<E> tmp = first;
  170.             first = first.succ;
  171.             return tmp.element;
  172.         } else {
  173.             System.out.println("Listata e prazna");
  174.             return null;
  175.         }
  176.     }
  177.  
  178.     public E delete(SLLNode<E> node) {
  179.         if (first != null) {
  180.             SLLNode<E> tmp = first;
  181.             if (first == node) {
  182.                 return this.deleteFirst();
  183.             }
  184.             while (tmp.succ != node && tmp.succ.succ != null)
  185.                 tmp = tmp.succ;
  186.             if (tmp.succ == node) {
  187.                 tmp.succ = tmp.succ.succ;
  188.                 return node.element;
  189.             } else {
  190.                 System.out.println("Elementot ne postoi vo listata");
  191.                 return null;
  192.             }
  193.         } else {
  194.             System.out.println("Listata e prazna");
  195.             return null;
  196.         }
  197.     }
  198.  
  199.     public SLLNode<E> getFirst() {
  200.         return first;
  201.     }
  202.  
  203.     public SLLNode<E> find(E o) {
  204.         if (first != null) {
  205.             SLLNode<E> tmp = first;
  206.             while (tmp.element != o && tmp.succ != null)
  207.                 tmp = tmp.succ;
  208.             if (tmp.element == o) {
  209.                 return tmp;
  210.             } else {
  211.                 System.out.println("Elementot ne postoi vo listata");
  212.             }
  213.         } else {
  214.             System.out.println("Listata e prazna");
  215.         }
  216.         return first;
  217.     }
  218. }
  219.  
  220. //TestCase1
  221. //6
  222. //Jagoda 500
  223. //Cresha 800
  224. //Meshana 300
  225. //ChokoladoKaramela 5500
  226. //Vanilla 4000
  227. //Vishna 7500
  228.  
  229. //Jagoda Cresha Meshana
  230.  
  231. //TestCase2
  232. //5
  233. //Urma 900
  234. //Tiramisu 1605
  235. //Sacher 777
  236. //Snickers 1234
  237. //Avocado 768
  238.  
  239. //Urma Sacher Avocado
  240.  
  241.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement