-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path18258.kt
47 lines (44 loc) · 1.42 KB
/
18258.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
import java.util.*
import kotlin.collections.ArrayDeque
fun main() {
val bw = BufferedWriter(OutputStreamWriter(System.out))
val br = BufferedReader(InputStreamReader(System.`in`))
val n = br.readLine().toInt()
val q = ArrayDeque<Int>()
repeat(n){
val st = StringTokenizer(br.readLine())
while(st.hasMoreTokens()){
val cmd = st.nextToken()
if(cmd == "push"){
q.add(st.nextToken().toInt())
}else if(cmd == "pop"){
if(q.size == 0)
bw.write("-1\n")
else
bw.write("${q.removeFirst()}\n")
}else if(cmd == "size")
bw.write("${q.size}\n")
else if(cmd == "empty"){
if(q.size == 0)
bw.write("1\n")
else
bw.write("0\n")
}else if(cmd == "front"){
if(q.size == 0)
bw.write("-1\n")
else
bw.write("${q.first()}\n")
}else if(cmd == "back"){
if(q.size == 0)
bw.write("-1\n")
else
bw.write("${q.last()}\n")
}
}
}
bw.flush()
}