Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- import java.util.*;
- public class Main {
- static PrintWriter out;
- static BufferedReader br;
- static StringTokenizer in;
- public static void main(String[] args) throws IOException {
- br = new BufferedReader(new InputStreamReader(System.in));
- out = new PrintWriter(System.out);
- MyDek dek = new MyDek(2000000);
- String command;
- int s;
- do {
- command = nextToken();
- switch (command) {
- case "push_front":
- dek.push_front(nextInt());
- break;
- case "push_back":
- dek.push_back(nextInt());
- break;
- case "pop_back":
- s = dek.pop_back(dek.size());
- out.println((s == -999999999) ? ("error") : (s));
- break;
- case "pop_front":
- s = dek.pop_front(dek.size());
- out.println((s == -999999999) ? ("error") : (s));
- break;
- case "front":
- out.println((dek.front(dek.size()) == -999999999) ? ("error") : dek.front(dek.size()));
- break;
- case "back":
- out.println((dek.back(dek.size()) == -999999999) ? ("error") : dek.back(dek.size()));
- break;
- case "size":
- out.println(dek.size());
- break;
- case "clear":
- dek.clear();
- break;
- default:
- dek.exit();
- }
- } while (command.equals("exit") != true);
- out.close();
- System.exit(0);
- }
- static class MyDek {
- int maxSize;
- int[] dekArray;
- int front;
- int rear;
- int nItems;
- public MyDek(int sizeDek) {
- maxSize = sizeDek;
- dekArray = new int[maxSize];
- front = maxSize / 2 + 1;
- rear = maxSize / 2;
- nItems = 0;
- }
- public void push_front(int element) {
- dekArray[--front] = element;
- nItems++;
- out.println("ok");
- }
- public void push_back(int element) {
- dekArray[++rear] = element;
- nItems++;
- out.println("ok");
- }
- public int pop_back(int size) {
- if (size != 0) {
- nItems--;
- return dekArray[rear--];
- } else
- return -999999999;
- }
- public int pop_front(int size) {
- if (size != 0) {
- int temp = dekArray[front++];
- nItems--;
- return temp;
- } else
- return -999999999;
- }
- public int back(int size) {
- if (size != 0)
- return (dekArray[rear]);
- else
- return -999999999;
- }
- public int front(int size) {
- if (size != 0)
- return (dekArray[front]);
- else
- return -999999999;
- }
- public int size() {
- return nItems;
- }
- public void clear() {
- front = maxSize / 2 + 1;
- rear = maxSize / 2;
- nItems = 0;
- out.println("ok");
- }
- public void exit() {
- out.println("bye");
- }
- }
- public static String nextToken() throws IOException {
- while (in == null || !in.hasMoreTokens()) {
- in = new StringTokenizer(br.readLine());
- }
- return in.nextToken();
- }
- public static int nextInt() throws IOException {
- return Integer.parseInt(nextToken());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement