Advertisement
Guest User

Untitled

a guest
Apr 1st, 2015
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.84 KB | None | 0 0
  1. import java.util.*;
  2. import java.io.*;
  3.  
  4. public class Queue1Task {
  5.     FastScanner in;
  6.     PrintWriter out;
  7.  
  8.     public class Queue {
  9.         private Object[] elements = new Object[10];
  10.         private int start = 0;
  11.         private int end = 0;
  12.         private int size = 0;
  13.  
  14.         public int size() {
  15.             return size;
  16.         }
  17.  
  18.         public void ensureCapacity(int capacity) {
  19.             if (elements.length >= capacity) {
  20.                 return;
  21.             }
  22.             Object[] newElements  = new Object[2 * capacity];
  23.             for (int i = 0; i < size; i++) {
  24.                 if (i < size - start) {
  25.                     newElements[i] = elements[start + i];
  26.                 } else {
  27.                     newElements[i] = elements[i + start - size()];
  28.                 }
  29.             }
  30.             start = 0;
  31.             end = size();
  32.             elements = newElements;
  33.         }
  34.  
  35.         public void push(Object e) {
  36.             ensureCapacity(size() + 1);
  37.             elements[end] = e;
  38.             end = (end + 1) % elements.length;
  39.             size++;
  40.         }
  41.  
  42.         public Object pop() {
  43.             Object x = elements[start];
  44.             start = (start + 1) % elements.length;
  45.             size--;
  46.  
  47.             return x;
  48.         }
  49.     }
  50.  
  51.     public void solve() throws IOException {
  52.         String phrase;
  53.         char ch;
  54.         Queue q = new Queue();
  55.         int m = Integer.parseInt(in.next());
  56.         for (int i = 0; i < m; i++) {
  57.             phrase = in.next();
  58.  
  59.             ch = phrase.charAt(0);
  60.  
  61.             if (ch == '+') {
  62.                 q.push(in.nextInt());
  63.             }
  64.  
  65.             if (ch == '-') {
  66.                 out.println(q.pop());
  67.             }
  68.         }
  69.     }
  70.  
  71.     public void run() {
  72.         try {
  73.             in = new FastScanner(new File("queue1.in"));
  74.             out = new PrintWriter(new File("queue1.out"));
  75.  
  76.             solve();
  77.  
  78.             out.close();
  79.         } catch (IOException e) {
  80.                 e.printStackTrace();
  81.         }
  82.     }
  83.  
  84.     class FastScanner {
  85.         BufferedReader br;
  86.         StringTokenizer st;
  87.  
  88.         FastScanner(File f) {
  89.             try {
  90.                 br = new BufferedReader(new FileReader(f));
  91.             } catch (FileNotFoundException e) {
  92.                 e.printStackTrace();
  93.             }
  94.         }
  95.  
  96.         String next() {
  97.             while (st == null || !st.hasMoreTokens()) {
  98.                 try {
  99.                     st = new StringTokenizer(br.readLine());
  100.                 } catch (IOException e) {
  101.                     e.printStackTrace();
  102.                 }
  103.             }
  104.             return st.nextToken();
  105.         }
  106.  
  107.         int nextInt() {
  108.             return Integer.parseInt(next());
  109.         }
  110.     }
  111.  
  112.     public static void main(String[] arg) {
  113.         new Queue1Task().run();
  114.     }
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement