(uwaga, kod zadania)
Witam, zazwyczaj nie zadaje pytań na temat zadań ze spoja bo staram się samemu ze wszystkim poradzić (i jakoś mi to idzie).
Tym razem jednak nie wytrzymałem bo dostaje już białej gorączki z nerwów :/
Mamy takie zadanie: http://pl.spoj.com/problems/PP0604A/
Nie jest ono wyjątkowo trudne i dość szybko "je napisałem". Mam taki kod:
#include <iostream>
#include <cmath>
///-------------------------------------------------------------------------------------
int returnArrayElement(int arr[], unsigned int n){
double sum; //suma jest typu double by przy obliczaniu sredniej nie dostac liczby calkowitej
for(int i=0; i<n; i++)
sum+=arr[i];
double average = sum/n;
int theSmallDiff = 0; //indeks tablicy najblizszy sredniej (poxczątkowo zerowy)
for(int i=1; i<n; i++){
if(std::abs(average-arr[i]) < std::abs(average-arr[theSmallDiff]))//wyszukujemy nowe minimum
theSmallDiff = i;
}
return arr[theSmallDiff];
}
///----------------------------------------------------------------------------------------
int main(){
int t;
std::cin>>t;
for(int i=0; i<t; i++){
int n;
std::cin>>n;
int* arr = new int[n];
for(int i=0; i<n; i++){
std::cin>>arr[i];
}
std::cout<<returnArrayElement(arr,n)<<std::endl;
delete[] arr;
}
return 0;
}
///------------------------------------------------------------------------------------------------
Myślę że wnikać w niego nie trzeba bo sam algorytm jest dość prosty. Dla wszystkich testów podanych w przykładzie działa mi prawidłowo. Jednak sędzia daje mi: " BÅÄdna odpowiedź "
Żeby nie było to patrzyłem już na forach na to zadanie, czytałem jego treść po kilka razy, sprawdzałem działanie programu dla różnych danych wejściowych... Ale nic nie znalazłem.
Jeżeli złamałem coś w regulaminie to przepraszam i będę wdzięczny za upomnienie, jednak już nie mogłem wytrzymać bo mnie nerwy cisną...
Dziękuje z góry za pomoc i pozdrawiam.