No więc napisałem program i mam błąd jak w temacie.
Kilkanaście razy sprawdziłem kod i napisałem kilka wersji programu (małe zmiany) i nadal ów błąd występuję. Wiem, że on nadal jest, bo wrzucam to zadanie na SPOJa (pl.spoj.pl) i mi go wyskakuje, że program jest zły (błąd SIGSEGV w każdym z testów). Program się kompiluje oczywiście (również z dopiskiem -ggdb).
Oto kod:
Kod:
// Autor: kokosoko
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
long long int x, y, t, i, j, max=-10000000, min=10000000, min2=1000000000, k, tab[100001], tab2[100001],
tab3[100001], ans;
scanf("%lld",&t);
for(i=0;i<t;i++)
{
scanf("%lld %lld",&tab[i],&tab2[i]);
if(tab[i]>max)max=tab[i];
if(tab[i]<min)min=tab[i];
}
for(i=min;i<=max;i++)
{
tab3[i]=0;
for(j=0;j<t;j++)
{
tab3[i]+=abs(tab2[j]);
tab3[i]+=abs(i-tab[j]);
}
if(tab3[i]<min2)
{
min2=tab3[i];
ans=i;
}
}
printf("%lld %lld\n",ans,tab3[ans]);
return 0;
}
Przypuszczam, że coś z tablicami jest nie tak (np. wywołanie nieistniejącej części tablicy), ale jak analizowałem kod, to wszystko było ok.
Gdyby komuś miało to pomóc w pomocy, tam jest treść zadania: https://pl.spoj.pl/problems/ETI07E5
Dziękuję za każdą wskazówkę.
PS Zapomniałem - wszystkie wyniki mam dobre (z testów i z forum polskiego SPOJa).