Hej,
Mam problem z tym zadaniem: https://pl.spoj.com/problems/MWPZ06H/
Lokalnie działa poprawnie, ale spoj nie przyjmuje. Jakieś wskazówki czemu?
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class PseudomathCompet {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int amountOfArrays = scanner.nextInt();
for (int j = 0; j < amountOfArrays; j++) {
int n = scanner.nextInt();
int[] a = new int[n];
for (int i = 0; i<n; i++) {
a[i] = scanner.nextInt();
}
System.out.println(Arrays.toString(numbersOfMaxs(quick(a, 0, n - 1))));
}
}
public static int[] addNumbersToMarksList(int numbersOfPeopleInCompetition) {
Scanner scanner = new Scanner(System.in);
int[] emptyListWithMarks = new int[numbersOfPeopleInCompetition];
for (int i = 0; i < numbersOfPeopleInCompetition; i++) {
emptyListWithMarks[i] = scanner.nextInt();
}
return emptyListWithMarks;
}
public static int partition (int a[], int start, int end)
{
int pivot = a[end];
int i = (start - 1);
for (int j = start; j <= end - 1; j++)
{
if (a[j] < pivot)
{
i++;
int t = a[i];
a[i] = a[j];
a[j] = t;
}
}
int t = a[i+1];
a[i+1] = a[end];
a[end] = t;
return (i + 1);
}
public static int[] quick(int a[], int start, int end)
{
if (start < end)
{
int p = partition(a, start, end);
quick(a, start, p - 1);
quick(a, p + 1, end);
}
return a;
}
public static int[] numbersOfMaxs(int[] array) {
int l=1;
int[] newArray = new int[array.length];
for(int i=array.length-1; i>0; i--) {
if(array[i]==array[i-1]) {
l=l+1;
} else {
break;
}
}
for(int i=0; i<l; i++) {
newArray[i]=array[array.length-1];
}
int j=0;
for(int i=l; i<=array.length-1; i++) {
newArray[i]=array[j];
j++;
}
return newArray;
}
}