Advertisement
saurav_kalsoor

Game with Thor and Loki - KOTLIN

May 17th, 2022
409
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Author : Saurav Kalsoor
  2. // Game with Thor and Loki - JAVA
  3.  
  4. import java.util.*
  5. import java.lang.*
  6.  
  7. var sc: Scanner = Scanner(System.`in`)
  8.  
  9. fun main() {
  10.     val n: Int = sc.nextInt()
  11.     val arr: ArrayList<Int> = ArrayList<Int>()
  12.     for (i in 0 until n) {
  13.         val input: Int = sc.nextInt()
  14.         arr.add(input)
  15.     }
  16.     gameWithThorAndLoki(arr, n)
  17. }
  18.  
  19. fun gameWithThorAndLoki(arr: ArrayList<Int>, n: Int) {
  20.     val start = 0
  21.     val end = n - 1
  22.     val isThorsTurn = true
  23.     val res: ArrayList<Int> = recurr(arr, start, end, isThorsTurn)
  24.     println(res.get(0).toString() + " " + res.get(1))
  25. }
  26.  
  27. fun recurr(arr: ArrayList<Int>, start: Int, end: Int, isThorsTurn: Boolean) : ArrayList<Int> {
  28.     var start = start
  29.     var end = end
  30.     if (start > end) {
  31.         val res: ArrayList<Int> = ArrayList<Int>()
  32.         res.add(0)
  33.         res.add(0)
  34.         return res
  35.     }
  36.     val left: Int = arr.get(start)
  37.     val right: Int = arr.get(end)
  38.     var currThor = 0
  39.     var currLoki = 0
  40.     if (isThorsTurn) {
  41.         currThor = Math.max(left, right)
  42.         currLoki = Math.min(left, right)
  43.     } else {
  44.         currLoki = Math.max(left, right)
  45.         currThor = Math.min(left, right)
  46.     }
  47.     start++
  48.     end--
  49.     val res: ArrayList<Int> = recurr(arr, start, end, !isThorsTurn)
  50.     res.set(0, res.get(0) + currThor)
  51.     res.set(1, res.get(1) + currLoki)
  52.     return res
  53. }
  54.  
  55.  
  56.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement