View difference between Paste ID: pexDdiQN and 0FWfSxUB
SHOW: | | - or go back to the newest paste.
1
// Author : Saurav Kalsoor
2
// Game with Thor and Loki - JAVA
3
4-
import java.util.*;
4+
import java.util.*
5
import java.lang.*
6-
public class Test {
6+
7-
    
7+
var sc: Scanner = Scanner(System.`in`)
8-
    static Scanner sc = new Scanner(System.in);
8+
9-
    public static void main(String[] args) {
9+
fun main() {
10-
        int n = sc.nextInt();
10+
    val n: Int = sc.nextInt()
11
    val arr: ArrayList<Int> = ArrayList<Int>()
12-
        ArrayList<Integer> arr = new ArrayList<>();
12+
    for (i in 0 until n) {
13
        val input: Int = sc.nextInt()
14-
        for(int i=0; i < n; i++) {
14+
        arr.add(input)
15-
            int input = sc.nextInt();
15+
16-
            arr.add(input);
16+
    gameWithThorAndLoki(arr, n)
17-
        }
17+
18
19-
		gameWithThorAndLoki(arr, n);
19+
fun gameWithThorAndLoki(arr: ArrayList<Int>, n: Int) {
20
    val start = 0
21
    val end = n - 1
22
    val isThorsTurn = true
23-
    public static void gameWithThorAndLoki(ArrayList<Integer> arr, int n){
23+
    val res: ArrayList<Int> = recurr(arr, start, end, isThorsTurn)
24-
		int start = 0, end = n - 1;
24+
    println(res.get(0).toString() + " " + res.get(1))
25-
		boolean isThorsTurn = true;
25+
26-
		
26+
27-
		ArrayList<Integer> res = recurr(arr, start, end, isThorsTurn);
27+
fun recurr(arr: ArrayList<Int>, start: Int, end: Int, isThorsTurn: Boolean) : ArrayList<Int> {
28
    var start = start
29-
		System.out.println(res.get(0) + " " + res.get(1));
29+
    var end = end
30
    if (start > end) {
31
        val res: ArrayList<Int> = ArrayList<Int>()
32-
	public static ArrayList<Integer> recurr(ArrayList<Integer> arr, int start, int end, boolean isThorsTurn){
32+
        res.add(0)
33-
		if(start > end){
33+
        res.add(0)
34-
			ArrayList<Integer> res = new ArrayList<Integer>();
34+
        return res
35-
			res.add(0);
35+
36-
			res.add(0);
36+
    val left: Int = arr.get(start)
37-
			return res;
37+
    val right: Int = arr.get(end)
38-
		}
38+
    var currThor = 0
39
    var currLoki = 0
40-
		int left = arr.get(start);
40+
    if (isThorsTurn) {
41-
		int right = arr.get(end);
41+
        currThor = Math.max(left, right)
42-
		int currThor = 0, currLoki = 0;
42+
        currLoki = Math.min(left, right)
43
    } else {
44-
		if(isThorsTurn){
44+
        currLoki = Math.max(left, right)
45-
			currThor = Math.max(left, right);
45+
        currThor = Math.min(left, right)
46-
			currLoki = Math.min(left, right);
46+
47-
		}else{
47+
    start++
48-
			currLoki = Math.max(left, right);
48+
    end--
49-
			currThor = Math.min(left, right);
49+
    val res: ArrayList<Int> = recurr(arr, start, end, !isThorsTurn)
50-
		}
50+
    res.set(0, res.get(0) + currThor)
51
    res.set(1, res.get(1) + currLoki)
52-
		start++;
52+
    return res
53-
		end--;
53+
54-
		ArrayList<Integer> res = recurr(arr, start, end, !isThorsTurn);
54+
55
56-
		res.set(0, res.get(0) + currThor);
56+