1

Тема: Алготестер задача № 0361. Марічка і смачні цукерки. Java

https://algotester.com/uk/ArchiveProble … File/40156
На 29 прикладі дає неправильну відповідь.

import java.util.Arrays;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt(), k = in.nextInt();
        int arr[] = new int[n];
        for (int i = 0; i < n; i++){
            arr[i] = in.nextInt();
        }
        Arrays.sort(arr);
        int max = 1, identical_elements = 1;
        for (int i = 0; i < n - 1; i++) {
            if (arr[i] == arr[i + 1]) identical_elements++;
            else {
                if (identical_elements > max) max = identical_elements;
                identical_elements = 1;
                if (max >= k) {for (int j = 0; j < n; j++) System.out.print(arr[j] + " "); return;}
            }

        }
        if (max >= k) for (int i = 0; i < n; i++) System.out.print(arr[i] + " ");
        else System.out.println("Oh sh*t");

    }

}

А ця програма на 19 прикладі - ліміт часу, хоча я просто додав коментарі

import java.util.Arrays;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt(), k = in.nextInt();
        int arr[] = new int[n];
        for (int i = 0; i < n; i++){
            arr[i] = in.nextInt();
        }
        Arrays.sort(arr);
        // максимальна кількість однакових елементів та однакові елементи
        int max = 1, identical_elements = 1;
        for (int i = 0; i < n - 1; i++) {
            //перевіряю, якщо однакові то збільшую на один
            if (arr[i] == arr[i + 1]) identical_elements++;
            else {
                // якщо різні то перевіряю чи дана кількість не є максимальною
                if (identical_elements > max) max = identical_elements;
                // "обнуляю" для наступних однакових елементів
                identical_elements = 1;
                // якщо потрібна кількість вже знайдена, то не потрібно продовжувати пошук
                if (max >= k) {
                    for (int j = 0; j < n; j++) System.out.print(arr[j] + " ");
                    return;
                }
            }

        }
        //це для випадку коли n = 1
        if (max >= k) for (int i = 0; i < n; i++) System.out.print(arr[i] + " ");
        else System.out.println("Oh sh*t");

    }

}

Дякую за допомогу!