I'm a newbie in memory allocation so I created a code which does not run through big number based tests, because the maximum stack memory is set to 256mb:
java.lang.OutOfMemoryError: Java heap space
at kdiv.main(kdiv.java:35)
My code:
import java.io.*;
import java.util.*;
public class kdiv {
    public static void main(String[] args) {
        
        int sum = 0;
        int minmax = 1;
        Scanner sc = new Scanner(System.in);
        int testcs = 0;
        if (sc.hasNextInt()) {
            testcs = sc.nextInt();
        }
        for (int x = 1; x <= testcs; x++) {
            // testCase();
            // TODO Auto-generated method stub
            int n = 0;
            double k = 0;
//      System.out.print("n: ");
            if (sc.hasNextInt()) {
                n = sc.nextInt();
            }
//      System.out.print("k: ");
            if (sc.hasNextInt()) {
                k = sc.nextInt();
            }
            minmax = 1;
            sum = 0;
            int arr[] = new int[n];
            for (int i = 0; i < arr.length; i++) {
                arr[i] = 1;
                sum += arr[i];
            }
            for (int a = 0; a < k; a++) {
                if (sum % k == 0) {
                    if (a == 0) {
                        System.out.println(minmax);
                    }
                    break;
                }
                for (int b = 0; b < n; b++) {
                    arr[b]++;
                    sum++;
                    minmax = arr[b];
                    // System.out.println(Arrays.toString(arr));
                    if (sum % k == 0) {
                        System.out.println(minmax);
                        break;
                    }
                }
            }
        }
    }
}
It is a trivial issue, I know, but I don't know how to deal with this. Could anyone at least suggest me where do I learn memory allocation so I can understand this thing? 'Cause I'm stuck. Have a nice day.
 
    