fork download
  1. import java.util.ArrayDeque
  2. import java.util.StringTokenizer
  3.  
  4. fun main() {
  5. val br = System.`in`.bufferedReader()
  6. val t = br.readLine().toInt()
  7.  
  8. repeat(t) {
  9. val command = br.readLine()
  10. val n = br.readLine().toInt()
  11. val arrStr = br.readLine()
  12. val arr = StringTokenizer(arrStr.substring(1, arrStr.length - 1), ",")
  13. val deque = ArrayDeque<Int>()
  14.  
  15. var error = false
  16. var reversed = false
  17. loop@ for (c in command) {
  18. when (c) {
  19. 'R' -> reversed = !reversed
  20. 'D' -> {
  21. if (deque.isEmpty()) {
  22. error = true
  23. break@loop
  24. }
  25.  
  26. if (reversed) {
  27. deque.removeLast()
  28. } else {
  29. deque.removeFirst()
  30. }
  31. }
  32. }
  33. }
  34.  
  35. if (error) {
  36. println("error")
  37. } else {
  38. val sb = StringBuilder()
  39. sb.append("[")
  40. if (reversed) {
  41. for (i in 0 until deque.size) {
  42. sb.append("${deque.removeLast()},")
  43. }
  44. } else {
  45. for (i in deque.size - 1 downTo 0) {
  46. sb.append("${deque.removeFirst()},")
  47. }
  48. }
  49. sb.append("]")
  50. println(sb)
  51. }
  52. }
  53. }
Success #stdin #stdout 0.1s 38216KB
stdin
4
RDD
4
[1,2,3,4]
DD
1
[42]
RRD
6
[1,1,2,3,5,8]
D
0
[]
stdout
error
error
error
error