1 / 17
Jan 2010

Witam po raz kolejny smile
Kolejny raz mam problem aktualnie z zadaniem które jest tematem ;d.
Mój kod:

#include <stdio.h>
int main()
{
 printf("Nie ma");
 return 0;
 }
}

Sprawdzałem z dużą ilością przykładów, wychodziły dobrze, jednakże dostaje "WA" od sędziego.
Można prosić o jakiegoś hinta, ew. przykładowy input i output który może być problematyczny.
Z góry dzięki

  • created

    Jan '10
  • last reply

    Sep '15
  • 16

    replies

  • 941

    views

  • 9

    users

  • 2

    links

Po pierwsze masz cienki algorytm liczenia silni, lepiej się zastanów jak robisz to w rzeczywistości. Po za tym dwumian szybciej się liczy, jak zauważysz pewne zależności we wzorze na niego. Niestety nie potrafię ci powiedzieć, dlaczego dostajesz błędną odpowiedź, ja jestem pewien że dobrze zrobiłem, a dostaję WA. Moim zdaniem są błędne testy w tym zadaniu (liczby w pojedynczym wierszu mogą być duże, a autor być może korzystał z unsigned long long, który jest za mały).

Potwierdzam, że był błąd w testach.
Rozpędziłem się z unsigned long long int dla setnej linii trójkąta Pascala.
Poprawiłem testy i dałem zadanie do kategorii średnie, ze względu na duże liczby.

Przepraszam za zamieszanie.

Szczerze mówiąc nadal jest źle wink
Jestem przekonany że liczę w sposób poprawny (może nie wydajnie ale poprawnie) jednak nadal dostaje odpowiedz od sędziego która brzmi "WA".

chakier je zrobił więc jest poprawnie już. stuck_out_tongue
Pokaż kod źródłowy. Zobaczyłbym sam, ale masz inny nick na forum i spoju.

kokosek, jeżeli nie zauważyłeś to kod jest w pierwszym poście stuck_out_tongue

Zauważyłem, ale potem napisałeś:

więc wywnioskowałem, że coś zmieniłeś.
Już szukam błędu.

Edit: Masz po prostu problem ze zbyt dużymi liczbami. Zobacz na komentarze pod zadaniem - C. Chakier napisał, że największa liczba setnego wiersza to: 100891344545564193334812497256 podczas gdy ona wynosi u Ciebe: 100891344545564202071714955264. Właśnie dlatego to zadanie jest w średnich.

napisalem taki program w RUBY

kod usuniety przez autora

sprawdzalem do na wszystkich liczbach i wyniki byly dobre
jednakze SPOJ zwraca mi "bledny wynik"
moze chodzi o zle wywolanie programu ?
jak spoj wykonuje programy RUBY ?

Nie znam się na Ruby'm, więc nie powiem Ci, co masz źle, ale powiem tylko, że np. szósty wiersz wypisuje Ci tak:

6 6 3 1 0 0 0

Może sam dojdziesz, co jest nie tak.

juz mam problem byl w tej linii

    tab << silnia(number) / (silnia(i) * silnia(number - 1))

zamiast silnia(number - 1) powinno byc silnia(number - i)

Fajne zadanie, ale chyba celem zadania jest zapoznanie się z algorytmem na Trójkąt Pascala12, a następnie zaimplementowanie go w wybranym języku programowania.
Skoro przechodzą programy z wielokrotnym liczeniem silni, to raczej zestawy testowe nie są odpowiednio przygotowane (powinny być bardziej wymagające).
Zadanie chyba powinno wrócić do kategorii łatwych, tym bardziej ze algorytm jest ogólnie dostępy.

Aby wymyśleć, jak ominąć w tym zadaniu arytmetykę dużych liczb należy przynajmniej trochę pomyśleć. Ponadto wszytkie zadania, w których operacje na liczbach wykraczających za unsigned long longa są w średnich lub nawet niektóre w trudnych, choć w PHP można je rozwiązać kilkulinijkowym kodem (np. TMUL, TDIV). Tak więc zostawię jednak to zadanie w średnich, bo pomimo, że dla Ciebie wydaje się ono może i trywialne, to dla innych może ono być problematyczne.

Dziwi mnie w sumie, że ktoś chce to zadanie przenieść do łatwych podczas gdy w średnich są takie zadania jak PRIME_T, EUCGAME, FIB. Naprawdę myślisz, że to zadanie jest łatwiejsze od wymienionych przeze mnie?

2 years later

macbon sory teraz sprawdź na ideone daje mi dobrą odpowiedź.

2
27
28

1 27 351 2925 17550 80730 296010 888030 2220075 4686825 8436285 13037895 17383860 20058300 20058300 17383860 13037895 8436285 4686825 2220075 888030 296010 80730 17550 2925 351 27 1 
1 28 378 3276 20475 98280 376740 1184040 3108105 6906900 13123110 21474180 30421755 37442160 40116600 37442160 30421755 21474180 13123110 6906900 3108105 1184040 376740 98280 20475 3276 378 28 1

Podane wyniki są OK. No cóż wygląda na to, że ustawienia kompilacji na SPOJu i Ideone muszą się rożnić. Na Ideone twój kod faktycznie daje dobre wyniki, jednak jak kompiluje go u siebie na g++ z opcjami -g -Wall -Wshadow to po uruchomieniu tego testu 1 27 28 nadal dostaję krzaczki. Zapewne na SPOJu jest to samo.

1 27 351 2925 17550 80730 296010 888030 2220075 4686825 8436285 13037895 17383860 20058301q� 20058301q� 17383860 13037895 8436285 4686825 2220075 888030 296010 80730 17550 2925 351 27 1 
1 28 378 3276 20475 98280 376740 1184040 3108105 6906900 13123110 21474180 30421755 20232140m� 40116602�n� 20232140m� 30421755 21474180 13123110 6906900 3108105 1184040 376740 98280 20475 3276 378 28 1

LETHRN JESTEŚ WIELKI :} Ale pierwszy raz słyszę aby zerować tablice charów nie wiem jak mam ci dziękować ;]

3 years later