Тема: Алготестер задача № 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");
}
}
Дякую за допомогу!