Advertisement
vov44k

Untitled

Dec 1st, 2022
1,006
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.85 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.*;
  3.  
  4.  
  5. public class Main {
  6.  
  7.     static PrintWriter out;
  8.     static BufferedReader br;
  9.     static StringTokenizer in;
  10.  
  11.     public static void main(String[] args) throws IOException {
  12.         br = new BufferedReader(new InputStreamReader(System.in));
  13.         out = new PrintWriter(System.out);
  14.  
  15.  
  16.         MyDek dek = new MyDek(2000000);
  17.         String command;
  18.         int s;
  19.         do {
  20.             command = nextToken();
  21.             switch (command) {
  22.                 case "push_front":
  23.                     dek.push_front(nextInt());
  24.                     break;
  25.                 case "push_back":
  26.                     dek.push_back(nextInt());
  27.                     break;
  28.                 case "pop_back":
  29.                     s = dek.pop_back(dek.size());
  30.                     out.println((s == -999999999) ? ("error") : (s));
  31.                     break;
  32.                 case "pop_front":
  33.                     s = dek.pop_front(dek.size());
  34.                     out.println((s == -999999999) ? ("error") : (s));
  35.                     break;
  36.                 case "front":
  37.                     out.println((dek.front(dek.size()) == -999999999) ? ("error") : dek.front(dek.size()));
  38.                     break;
  39.                 case "back":
  40.                     out.println((dek.back(dek.size()) == -999999999) ? ("error") : dek.back(dek.size()));
  41.                     break;
  42.                 case "size":
  43.                     out.println(dek.size());
  44.                     break;
  45.                 case "clear":
  46.                     dek.clear();
  47.                     break;
  48.                 default:
  49.                     dek.exit();
  50.             }
  51.         } while (command.equals("exit") != true);
  52.         out.close();
  53.         System.exit(0);
  54.  
  55.  
  56.     }
  57.  
  58.     static class MyDek {
  59.         int maxSize;
  60.         int[] dekArray;
  61.         int front;
  62.         int rear;
  63.         int nItems;
  64.  
  65.         public MyDek(int sizeDek) {
  66.             maxSize = sizeDek;
  67.             dekArray = new int[maxSize];
  68.             front = maxSize / 2 + 1;
  69.             rear = maxSize / 2;
  70.             nItems = 0;
  71.         }
  72.  
  73.         public void push_front(int element) {
  74.             dekArray[--front] = element;
  75.             nItems++;
  76.             out.println("ok");
  77.         }
  78.  
  79.         public void push_back(int element) {
  80.             dekArray[++rear] = element;
  81.             nItems++;
  82.             out.println("ok");
  83.         }
  84.  
  85.         public int pop_back(int size) {
  86.             if (size != 0) {
  87.                 nItems--;
  88.                 return dekArray[rear--];
  89.             } else
  90.                 return -999999999;
  91.         }
  92.  
  93.         public int pop_front(int size) {
  94.             if (size != 0) {
  95.                 int temp = dekArray[front++];
  96.                 nItems--;
  97.                 return temp;
  98.             } else
  99.                 return -999999999;
  100.         }
  101.  
  102.         public int back(int size) {
  103.             if (size != 0)
  104.                 return (dekArray[rear]);
  105.             else
  106.                 return -999999999;
  107.         }
  108.  
  109.         public int front(int size) {
  110.             if (size != 0)
  111.                 return (dekArray[front]);
  112.             else
  113.                 return -999999999;
  114.         }
  115.  
  116.         public int size() {
  117.             return nItems;
  118.         }
  119.  
  120.         public void clear() {
  121.             front = maxSize / 2 + 1;
  122.             rear = maxSize / 2;
  123.             nItems = 0;
  124.             out.println("ok");
  125.         }
  126.  
  127.         public void exit() {
  128.             out.println("bye");
  129.         }
  130.  
  131.     }
  132.  
  133.     public static String nextToken() throws IOException {
  134.         while (in == null || !in.hasMoreTokens()) {
  135.             in = new StringTokenizer(br.readLine());
  136.         }
  137.         return in.nextToken();
  138.     }
  139.  
  140.     public static int nextInt() throws IOException {
  141.         return Integer.parseInt(nextToken());
  142.     }
  143.  
  144. }
  145.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement