68 / 192
Aug 2016

co w tym kodzie może być nie tak?

using namespace std;

int main()
{

int doba = 86400;
int chowtime;
int N;
int test;
cin>>test;
int M;
int piece;
int pieces=0;
int boxes=0;

for(int i=0;i<test;i++)
{ boxes=0;
cin>>N>>M;
while(0<N)
{
cin>>chowtime;
piece=doba/chowtime;
pieces+=piece;
N--;}
while(pieces>0)
{
pieces=pieces-M;
boxes++;}

cout<<boxes;

}
return 0;}

Na pewno "nie tak" jest on wstawiony :slight_smile:

W związku z tym nie mogę go uruchomić. Czytam więc pobieżnie i hm... upiekło Ci się :wink: Widzę dwa błędy i powinno być AC.

1) Co wyświetla Twój kod dla danych testowych? Bo na pewno nie osiem w pierwszej linii i dwa w następnej linii. Wstaw endl w odpowiednie miejsce.
2) Słusznie zerujesz boxes w każdym przypadku testowym. A co z pozostałymi zmiennymi? Czy którejś z nich też nie trzeba wyzerować?

11 days later

Witam. Nie jestem wstanie pozytywnie przejść sprawdzania kodu poprzez sędziego. Na stronie Ideone wyświetla poprawne wartości. Proszę o pomoc i dziękuję.

#include <iostream>
using namespace std;
int testy,uczestnicy,ciastka,czas1,czas2,czas3,doba=86400,zjedzone;
int main()
{
int suma;
cin>>testy;
for(int i=1;i<=testy;i++)
{
cin>>uczestnicy>>ciastka;
if(uczestnicy==3)
{
cin>>czas1>>czas2>>czas3;
zjedzone=((doba/czas1)+(doba/czas2)+(doba/czas3));
suma=zjedzone/ciastka;
if(zjedzone%ciastka!=0)
{
suma++;
cout<<suma<<endl;
}
else cout<<suma<<endl;
}
else
{
cin>>czas1>>czas2;
zjedzone=((doba/czas1)+(doba/czas2));
suma=zjedzone/ciastka;
if(zjedzone%ciastka!=0)
{
suma++;
cout<<suma<<endl;
}
else cout<<suma<<endl;
}
}
return 0;
}

a dla takiego testu:

1
5 1
1 1 1 1 1

lub

1
10000 1
1 ... 1

oczywiście w linii 1 ... 1 jest 10000 razy 1

a tak w ogóle, to warto przed napisaniem pytanie przeczytać wszystkie porady związanie z zadaniem, może nie trzeba zadawać po raz kolejny pytania, które już było

Czytając dowiedziałem się, że sędzia nie lubi się z funkcjami zaokrąglającymi i o odpowiednim stosowaniu endl, aby nie było problemu z odczytem "wyniku". Dla podanych przez Ciebie danych program nie działa już prawidłowo. Proszę o kolejną wskazówkę w miarę możliwości.

Twój program działa poprawnie tylko jeśli jest 2 lub 3 obżartuchów, a może ich być od 1 do 10000. Tak więc zamiast if(uczestnicy==3) zastosuj coś co zadziała niezależnie od tego ilu ich będzie .

Co do funkcji zaokrąglających, to nie ma już problemu z prawidłowo użytym ceil() o ile o niego ci chodzi.

Dziękuje bardzo za pomoc, udało się. Z góry zakładałem, że program ma tylko spełniać warunki zadania i nic poza tym, a dodatkowo informacja o działającej funkcji ceil również była przydatna.

W zadaniu jest wyraźnie napisane ilu może być obżartuchów, patrz na specyfikację wejścia i wyjścia a dopiero potem na przykłady pod zadaniem.

11 days later

Witam, może ktoś określić co jest nie tak z moim kodem? Po zgłoszeniu go wyrzuca mi 'Segmentation fault'. http://ideone.com/r8XLtH16 W codeblocksie i na cpp.sh działa prawidłowo. Nie wydaje mi się, żebym wychodził poza tablice ani nic takiego. Nie bardzo rozumiem co powoduje ten błąd, dopiero zaczynam swoją przygodę z programowaniem.

czy przeczytałeś treść zadania ?
czy pamiętasz ile może być testów ?

Tak, przeczytałem treść. Nie jest tam napisane ile może być testów. W specyfikacji wejścia mam zapisane, że sprawdza dla 2. Jeśli chodzi o użyte tablice to przy zwiększeniu ich do ponad 3 argumentów( tyle ile zaproszono maksymalnie obżartuchów na wejściu) również program nie che być zaakceptowany.

Skoro w specyfikacji zadania nie napisano ile jest testów, to skąd twoje przekonanie, że wystarczą 2 lub 3 testy ?

to może spróbuj dla: 4, 5, ... itd. aż zaliczy :slight_smile:

Mógłbyś zacytować to zdanie? bo ja tam znalazłem dużo większą liczbę. Zwłaszcza że nawet w przykładzie pod zadaniem występuje test dla 3 obżartuchów.

Sądziłem, że chodzi o wartość z pierwszej linii wejścia.
Już rozumiem gdzie miałem błąd, po poprawieniu program został zaakceptowany.
Dziękuję za naprowadzenie na rozwiązanie.

Aha już wiem gdzie leży problem, dzięki.
Zadanie zaliczone w takim razie =D

a uruchomiłeś ten program dla jakichkolwiek danych, choćby najprostszego, przykładowego z zadania ?

doprowadź do tego, aby działał, zamiast zgłaszać błąd (nie jest to trudne, wystarczy usunąć to co niepotrzebne :slight_smile: ), a dalsza pomoc też nie będzie potrzebna :slight_smile: