Kame3

Компанија

Nov 23rd, 2020
404
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Компанија Problem 10 (4 / 10)
  2.  
  3. Податоците за плати на вработените во една компанија привремено се чуваат во еднострано поврзана листа. Во секој јазол од листата се чува единствен ID на вработениот и неговата плата. Потребно е да се отстранат сите вработени со помали плати од даден износ, а остатокот да се прикажат во опаѓачки редослед во однос на ID-то. Во првиот ред од влезот е даден бројот на вработени, потоа наизменично се дадени ID и плата за секој од вработените и во последниот ред е износот во однос на кој ќе се отстрануваат вработените. На излез се печати листа (ID, плата) во опаѓачки редослед според ID на секој од вработените.
  4.  
  5. Доколку нема вработени со плата поголема од дадената да се испечати: nema
  6.  
  7. Име на класата: SLLKompanija
  8.  
  9.  
  10. import java.io.BufferedReader;
  11. import java.io.IOException;
  12. import java.io.InputStreamReader;
  13.  
  14.  
  15.  
  16. class SLLNode {
  17.     protected int id;
  18.     protected int plata;
  19.     protected SLLNode succ;
  20.  
  21.     public SLLNode(int id,int plata, SLLNode succ) {
  22.         this.id = id;
  23.         this.plata=plata;
  24.         this.succ = succ;
  25.     }
  26.  
  27.    
  28. }
  29.  
  30. class SLL {
  31.     private SLLNode first;
  32.  
  33.     public SLL() {
  34.         // Construct an empty SLL
  35.         this.first = null;
  36.     }
  37.  
  38.     public void deleteList() {
  39.         first = null;
  40.     }
  41.  
  42.     public int length() {
  43.         int ret;
  44.         if (first != null) {
  45.             SLLNode tmp = first;
  46.             ret = 1;
  47.             while (tmp.succ != null) {
  48.                 tmp = tmp.succ;
  49.                 ret++;
  50.             }
  51.             return ret;
  52.         } else
  53.             return 0;
  54.  
  55.     }
  56.  
  57.  
  58.     public void insertFirst(int id, int plata) {
  59.         SLLNode ins = new SLLNode(id,plata, first);
  60.         first = ins;
  61.     }
  62.  
  63.     public void insertLast(int id,int plata) {
  64.         if (first != null) {
  65.             SLLNode tmp = first;
  66.             while (tmp.succ != null)
  67.                 tmp = tmp.succ;
  68.             SLLNode ins = new SLLNode(id, plata, null);
  69.             tmp.succ = ins;
  70.         } else {
  71.             insertFirst(id,plata);
  72.         }
  73.     }
  74.  
  75.     public SLLNode getFirst() {
  76.         return first;
  77.     }
  78.    
  79.    
  80.     public SLL brisi_pomali_od(int iznos) {
  81.         // Vasiot kod tuka
  82.         SLLNode p = first;
  83.         SLLNode pp = first;
  84.        
  85.         while (p!=null){
  86.             if (p.plata < iznos){
  87.                 if (p == first)
  88.                     p = pp = first = first.succ;
  89.                 else{
  90.                     pp.succ = p.succ;
  91.                     p = p.succ;
  92.                 }
  93.             } else {
  94.                 if (p!=first) pp = p;
  95.                 p = pp.succ;
  96.             }
  97.         }
  98.         return this;
  99.     }
  100.    
  101.     public SLL sortiraj_opagacki() {
  102.         // Vasiot kod tuka
  103.         if (first == null){
  104.             System.out.print("nema");
  105.             return this;
  106.         }
  107.        
  108.         boolean flag = true;
  109.         while(flag){
  110.             flag = false;
  111.             SLLNode p = first;
  112.             SLLNode pp = first;
  113.             SLLNode pom;
  114.             while (p.succ!=null)
  115.                 if (p.id < p.succ.id){
  116.                     flag = true;
  117.                     pom = p.succ;
  118.                     p.succ = pom.succ;
  119.                     pom.succ = p;
  120.                     if (p == first) pp = first = pom;
  121.                     else pp = pp.succ = pom;
  122.                 } else {
  123.                     if (p!=first) pp = pp.succ;
  124.                     p = p.succ;
  125.                 }
  126.         }
  127.         return this;
  128.     }
  129.     public void pecati (SLL lista)
  130.     {
  131.         SLLNode p=lista.first;
  132.         while(p!=null)
  133.         {
  134.             System.out.println(p.id+" "+p.plata);
  135.             p=p.succ;
  136.         }
  137.     }
  138.    
  139. }
  140. public class SLLKompanija {
  141.     public static void main(String[] args) throws IOException {
  142.  
  143.         SLL lista1 = new SLL();
  144.         BufferedReader stdin = new BufferedReader(new InputStreamReader(
  145.                 System.in));
  146.         String s = stdin.readLine();
  147.         int N = Integer.parseInt(s);
  148.        
  149.         for (int i = 0; i < N; i++) {
  150.             s=stdin.readLine();
  151.             String s1=stdin.readLine();
  152.             lista1.insertLast(Integer.parseInt(s),Integer.parseInt(s1));
  153.         }
  154.         s = stdin.readLine();
  155.        
  156.         lista1=lista1.brisi_pomali_od(Integer.parseInt(s));
  157.         if(lista1!=null)
  158.         {
  159.             lista1=lista1.sortiraj_opagacki();
  160.             lista1.pecati(lista1);
  161.         }
  162.        
  163.     }
  164. }
  165.  
  166.  
  167.  
  168.  
  169.    
  170. Input:
  171. 10
  172. 10
  173. 19000
  174. 18
  175. 25000
  176. 17
  177. 23000
  178. 19
  179. 25000
  180. 14
  181. 34000
  182. 55
  183. 23400
  184. 66
  185. 23670
  186. 34
  187. 12670
  188. 46
  189. 21300
  190. 33
  191. 34550
  192. 6000
  193.  
  194.    
  195. Output:
  196. 66 23670
  197. 55 23400
  198. 46 21300
  199. 34 12670
  200. 33 34550
  201. 19 25000
  202. 18 25000
  203. 17 23000
  204. 14 34000
  205. 10 19000
  206.  
RAW Paste Data