eolymp
bolt
Try our new interface for solving problems
Problems

Lucky ticket 2

published at 4/3/24, 11:01:13 pm

import java.util.Scanner;

public class HappyTicket { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);

    int n = scanner.nextInt();
    int[] digits = new int[n];

    for (int i = 0; i < n; i++) {
        digits[i] = scanner.nextInt();
    }

    int happyBoundary = findHappyBoundary(n, digits);

    System.out.println(happyBoundary);
}

public static int findHappyBoundary(int n, int[] digits) {
    int[] leftSum = new int[n + 1];
    int[] rightSum = new int[n + 1];

    for (int i = 1; i <= n; i++) {
        leftSum[i] = leftSum[i - 1] + digits[i - 1];
    }

    for (int i = n - 1; i >= 0; i--) {
        rightSum[i] = rightSum[i + 1] + digits[i];
    }

    for (int i = 1; i < n; i++) {
        if (leftSum[i] == rightSum[i]) {
            return i;
        }
    }

    return -1;
}

}