fork download
  1. import java.util.Stack
  2.  
  3. fun main() {
  4. val br = System.`in`.bufferedReader()
  5. val stack = Stack<Char>()
  6.  
  7. val str = br.readLine()
  8. var prevOpen = false
  9. var count = 0
  10. for (c in str) {
  11. when (c) {
  12. '(' -> {
  13. prevOpen = true
  14. stack.push(c)
  15. }
  16. ')' -> {
  17. if (prevOpen) {
  18. stack.pop()
  19. count += stack.size
  20. } else {
  21. stack.pop()
  22. }
  23. prevOpen = false
  24. }
  25. }
  26. }
  27.  
  28. println(count)
  29. }
Success #stdin #stdout 0.07s 38112KB
stdin
()(((()())(())()))(())
stdout
12