Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Компанија Problem 2 (1 / 9)
- Податоците за плати на вработените во една компанија привремено се чуваат во двострано поврзана листа. Во секој јазол од листата се чува единствен ID на вработениот и неговата плата. Потребно е да се отстранат сите вработени со помали плати од даден износ, а остатокот да се прикажат во опаѓачки редослед во однос на ID-то.
- Во првиот ред од влезот е даден бројот на вработени, потоа наизменично се дадени ID-та и платата за секој од вработените и во последниот ред е износот во однос на кој ќе се отстрануваат вработените. На излез се печати листа (ID, плата) во опаѓачки редослед според ID-то на секој од вработените.
- Доколку нема вработени со плата поголема од дадената да се испечати: nema
- Име на класата: DLLKompanija
- Sample input
- 3
- 1111
- 19000
- 2222
- 22000
- 1155
- 60000
- 30000
- Sample output
- 1155 60000
- */
- import java.util.Scanner;
- class DLLNode<E>
- {
- E element;
- DLLNode<E> succ;
- DLLNode<E> pred;
- public DLLNode(E element, DLLNode<E> succ, DLLNode<E> pred) {
- this.element = element;
- this.succ = succ;
- this.pred = pred;
- }
- }
- class DLL<E>
- {
- DLLNode<E> first;
- DLLNode<E> last;
- public DLL() {
- first = null;
- last = null;
- }
- public void insertFirst(E element)
- {
- DLLNode<E> nov = new DLLNode<>(element,first,null);
- if(first ==null)
- {
- last =nov;
- }
- else
- {
- first.pred = nov;
- }
- first = nov;
- }
- public void insertLast(E element)
- {
- DLLNode<E> nov = new DLLNode<>(element,null,last);
- if(last==null)
- {
- first = nov;
- }
- else
- {
- last.succ = nov;
- }
- last =nov;
- }
- public String toString()
- {
- String s = new String();
- DLLNode<E> dvizi = first;
- while(dvizi!=null)
- {
- s+=dvizi.element+"\n";
- dvizi = dvizi.succ;
- }
- return s;
- }
- public int size()
- {
- int br=0;
- DLLNode<E> dvizi = first;
- while(dvizi!=null)
- {
- br++;
- dvizi = dvizi.succ;
- }
- return br;
- }
- }
- public class DLLKompanija {
- public static void sortiraj(DLL<Vraboten> lista)
- {
- int n = lista.size();
- for(int i=0;i<n;i++)
- {
- DLLNode<Vraboten> dvizi = lista.first;
- while(dvizi.succ!=null)
- {
- if(dvizi.element.ID<dvizi.succ.element.ID)
- {
- int tempId,tempPlata;
- tempId = dvizi.element.ID;
- dvizi.element.ID = dvizi.succ.element.ID;
- dvizi.succ.element.ID = tempId;
- tempPlata = dvizi.element.plata;
- dvizi.element.plata = dvizi.succ.element.plata;
- dvizi.succ.element.plata = tempPlata;
- }
- dvizi = dvizi.succ;
- }
- }
- }
- public static void brisiVraboteni(DLL<Vraboten> lista , int minIznos)
- {
- DLLNode<Vraboten> dvizi = lista.first;
- while(dvizi!=null)
- {
- if(dvizi.element.plata<minIznos)
- {
- if(dvizi==lista.first)
- {
- lista.first = lista.first.succ;
- if(lista.first!=null)
- {
- lista.first.pred = null;
- }
- dvizi = lista.first;
- }
- else if(dvizi==lista.last)
- {
- lista.last = lista.last.pred;
- dvizi.pred.succ = null;
- dvizi = null;
- }
- else
- {
- DLLNode<Vraboten> p1 = dvizi.pred;
- DLLNode<Vraboten> p2 = dvizi.succ;
- p1.succ = p2;
- p2.pred = p1;
- dvizi = p2;
- }
- }
- else
- {
- dvizi =dvizi.succ;
- }
- }
- }
- public static void main(String[] args) {
- DLL<Vraboten> lista = new DLL<>();
- Scanner input = new Scanner(System.in);
- int N = input.nextInt();
- for (int i = 0; i < N; i++) {
- int id = input.nextInt();
- int plata = input.nextInt();
- Vraboten v = new Vraboten(id, plata);
- lista.insertLast(v);
- }
- int minimalenIznos = input.nextInt();
- brisiVraboteni(lista, minimalenIznos);
- if(lista.first==null)
- System.out.println("nema");
- else
- {
- sortiraj(lista);
- System.out.println(lista);
- }
- }
- }
- class Vraboten
- {
- int ID;
- int plata;
- public Vraboten(int ID, int plata) {
- this.ID = ID;
- this.plata = plata;
- }
- public String toString()
- {
- return ID + " "+plata;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement