Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Collections;
- import java.util.Scanner;
- class DLLNode<E extends Comparable> implements Comparable {
- 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;
- }
- @Override
- public int compareTo(Object t) {
- DLLNode<E> temp = (DLLNode<E>) t;
- return this.element.compareTo(temp.element);
- }
- }
- class DLL<E extends Comparable> {
- DLLNode<E> first, last;
- public DLL() {
- first = 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 (first == null) {
- first = nov;
- } else {
- last.succ = nov;
- }
- last = nov;
- }
- public int size()
- {
- int br=0;
- DLLNode<E>dvizi = first;
- while(dvizi!=null)
- {
- br++;
- dvizi = dvizi.succ;
- }
- return br;
- }
- public String toString() {
- String s = new String();
- DLLNode<E> dvizi = first;
- while (dvizi != null) {
- s = s + dvizi.element + "\n";
- dvizi = dvizi.succ;
- }
- return s;
- }
- }
- public class DLLKompanija {
- public static void sort(DLL<Vraboten> lista) {
- DLLNode<Vraboten> dvizi= lista.first;
- Vraboten temp = new Vraboten();
- for (int i = 0; i < lista.size(); i++) {
- dvizi= lista.first;
- while (dvizi.succ != null) {
- if (dvizi.element.compareTo(dvizi.succ.element) < 0) {
- temp =dvizi.element;
- dvizi.element = dvizi.succ.element;
- dvizi.succ.element = temp;
- }
- dvizi = dvizi.succ;
- }
- }
- }
- public static void brisi(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) {
- DLLNode<Vraboten> p1 = dvizi.pred;
- DLLNode<Vraboten> p2 = dvizi.succ;
- p1.succ = p2;
- p2.pred = p1;
- dvizi = p2;
- } else {
- lista.last = lista.last.pred;
- if(lista.last!=null)
- lista.last.succ =null;
- dvizi = dvizi.succ;
- }
- } 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();
- brisi(lista, minimalenIznos);
- if(lista.first!=null)
- {
- sort(lista);
- System.out.println(lista);
- }
- else
- {
- System.out.println("nema");
- }
- }
- }
- class Vraboten implements Comparable {
- int id;
- int plata;
- public Vraboten(int id, int plata) {
- this.id = id;
- this.plata = plata;
- }
- public Vraboten() {
- }
- public String toString() {
- return id + " " + plata;
- }
- @Override
- public int compareTo(Object t) {
- Vraboten v = (Vraboten) t;
- if (this.id > v.id) {
- return 1;
- }
- if (this.id < v.id) {
- return -1;
- }
- return 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement