Deklaracja zmiennych używanych tylko w pętli po za nią - bardzo niedobrze, bo zostają wartości z poprzedniego obiegu. Przeniosłem int N,M,temp,c=0,o=0; do pętli for (int i....) i mi zaliczyło. Swoją drogą zmienna o jest nieużywana, to pewnie jakaś pozostałość po wcześniej wersji.
ps jak tobie też zaliczy, to usuń kod z forum.
Oto link do testów do tego zadania:
tiny.pl/hx5zl67
błędem jest istnienie tej tablicy
int n[ile_test-1][ile_abom];
prawdopodobnie wynikający z głownie braku rozumienia co robisz
w efekcie masz o jeden wiersz tablicy za mało, i w ostatnim teście mażesz po pamięci poza tablicą, dla małych testów może nie mieć to znaczenia, dla dużych musi się źle skończyć
a przecież tablica dwuwymiarowa nie jest ci potrzebna (a i tak kolejne przewymiarowanie zamazuje poprzednie dane), a oczywistym jest, że niepotrzebna jest jakakolwiek tablica
generalną zasadą jest używanie tablic statycznych o maksymalnym rozmiarze potrzebnym do rozwiązania problemu (oczywiście o ile to możliwe)
1
1 1
86500
Poza tym, możesz też pomysleć jak a) zrobić to bez tablic (zauważ, że wartości, które tam wczytujesz potrzebne Ci są właściwie tylko w jednym momencie) i b) jak zrobić to efektywniej (to dodawanie po 1 zjedzonym czy po 1 pudełku jest niezbyt piękne - da się sprawdzić np. liczbę zjedzonych przez jednego obżartucha jednym dzieleniem).
Teraz wczytywanie jest wystarczająco szybkie. Wystarczy teraz, że wyeliminujesz tablicę i będzie AC.
Niepotrzebnie też tworzysz warunki typu: "if(liczbaUczestnikow>0 && liczbaUczestnikow<=10000 && paczkaCiastek>0 && paczkaCiastek<=1000000000)" - to autor zadania deklaruje, że testy są odpowiednio dopasowane do tych warunków, Ty tego nie musisz potwierdzać. Ba! Twój kod powinien również dawać dobre wyniki jeśli nie wszystkie z tych warunków są spełnione (w rozsądnych granicach) na wypadek gdyby się jednak autor pomylił lub zmienił testy.
Hej, Pierwszy raz rozwiązuje zadanie na SPOJ i juz pierwsze problemy. Gdzie ja mam błąd w kodzie? U mnie wszystko dobrze kompiluje, chyba wszystkie przypadki założyłam, ale może tutaj jest cos inaczej odczytywane. Błagam o pomoc, ledwo zaczęłam, a juz jestem zniechęcona:(
for(int i=0; i<os;i++)
{c[i]=floor(86400/t[i]);
suma+=c[i];
}
suma/=szt;
cout<<ceil(suma)<<endl;
return 0;
}
Cześć proszę Was o pomoc.
Moje rozwiązanie wygląda tak:
#include <iostream>
#include <math.h>
using namespace std;
int main(){
long double calosc=0;
int a;
long long int N;
long long int M;
long double wynik;
cin >> a;
for (int i = 0; i < a; i++) {
cin >> N >> M;
int *tablica = new int[N];
for (int j = 0; j < N; j++) {
cin >> tablica[j];
calosc += floor((24*60*60) / tablica[j]);
}
wynik = calosc / M;
cout << ceil(wynik);
calosc = 0;
}
return 0;
}
SPOJ wyświetla mi błędną odpowiedź. Nie wiem co jest nie tak, przy przykładowych danych jest ok.
Nie nie jest ok, bo mi wyświetla 82 przy przykładowych danych. Wczytuj wejście z pliku albo testuj np na ideone, wtedy będziesz widział że zapomniałeś o << "\n"
. Poza tym jak już pisałem wyżej to zadanie nie współpracuje z ceil-em.
ps na chwilę obecną dodawanie kodu na tym forum leży i kwiczy, lepiej wkej na ideone.com i daj tu linka.
Coś może źle kod wkleiłem, mi w visual studio zwraca dobre wyniki. tutaj link http://ideone.com/DIJStL65
A jak wprowadzałeś dane? oto twój kod z inputem z zadania111 na ideone
Powywalaj zbędne endl oraz pytania, i usuń kod z forum bo sędzia go przyjmie. Odpowiedzą na zestaw z zadania ma być
8
2
a nie
Ile zestawow: Podaj liczbe uczestnikow i ilosc ciastek w pudelku dla zestawu: Podaj 1 czas jedzenia ciastka: Podaj 2 czas jedzenia ciastka:
8
Podaj liczbe uczestnikow i ilosc ciastek w pudelku dla zestawu: Podaj 1 czas jedzenia ciastka: Podaj 2 czas jedzenia ciastka: Podaj 3 czas jedzenia ciastka:
2
Swoją drogą to pierwszy kod z ceil-em jaki widzę przyjęty przez sędziego.
ps po co ci ta tablica skoro z niej nie korzystasz?
witam!
wrzucę tutaj cały swój kod łącznie z cout'ami (to dla klarowności kodu, sprawdzajac wrzuce go juz bez cout'ów). mam do was ogromną prośbę: pomóżcie znaleźć mi bład w tym kodzie. za nic w świecie nie moge go znaleźć, u mnie na PC wszystko działa i kompiluje poprawnie ale jak tylko wrzuce go do sprawdzenia to wyskakuje mi że jest błąd
include
using namespace std;
int ile,ciastka,t;
int x=0;
int y;
int main()
{
cout<<"podaj liczbe testow"< cin>>t;
for(int i=0; i {
cout<<"ilu obzartuchow jest na zlocie? ";
cin>>ile;
int czasy[ile];
cout<<"ile jest ciastek w jednym pudelku? ";
cin>>ciastka;
for(int i=0; i {
cout<<"podaj czas w sekundach w jakim "<< i+1 <<" obzartuch zjada ciastko: ";
cin>>czasy[i];
y=86400/czasy[i];
x+=y;
}
if ((x%ciastka)==0)
cout<<"potrzeba "<< x/ciastka <<"opakowan ciastek"< if ((x%ciastka)!=0)
cout<<"potrzeba "<< x/ciastka+1 <<" opakowan ciastek"< }
return 0;
}
z góry dziekuje za pomoc!