7 / 10
Oct 2017

Witam, czy ktoś może wskazać błąd który popełniłem w tym programie. Sam nie mogę dojść gdzie jest błąd, przetestowałem przeróżne liczby i za każdym razem otrzymuje poprawną odpowiedź mimo wszystko sędzia wykrywa błędną odpowiedź.

#include

using namespace std;

int main()
{
int testy, a, b;
cin >> testy;

for(int i = 1; i <= testy; i++)
{
    cin >> a >> b;
    if (b == 0) cout << 1 << endl;
    else if (a % 10 == 2)
    {
        if (b % 10 == 2 || b % 10 == 6) cout << 4 << endl;
        else if (b % 10 == 3 || b % 10 == 7) cout << 8 << endl;
        else if (b % 10 == 4 || b % 10 == 8) cout << 6 << endl;
        else if (b % 10 == 5 || b % 10 == 9) cout << 2 << endl;
        else if (b % 10 == 1 ) cout << 2 << endl;
    }
    else if (a % 10 == 3)
    {
        if (b % 10 == 2 || b % 10 == 6) cout << 9 << endl;
        else if (b % 10 == 3 || b % 10 == 7) cout << 7 << endl;
        else if (b % 10 == 4 || b % 10 == 8) cout << 1 << endl;
        else if (b % 10 == 5 || b % 10 == 9) cout << 3 << endl;
        else if (b % 10 == 1 ) cout << 3 << endl;
    }
    else if (a % 10 == 4)
    {
        if (b % 10 == 2 || b % 10 == 6) cout << 6 << endl;
        else if (b % 10 == 3 || b % 10 == 7) cout << 4 << endl;
        else if (b % 10 == 4 || b % 10 == 8) cout << 6 << endl;
        else if (b % 10 == 5 || b % 10 == 9) cout << 4 << endl;
        else if (b % 10 == 1 ) cout << 4 << endl;
    }
        else if (a % 10 == 5) cout << 5 << endl;
        else if (a % 10 == 6)
    {
        if (b % 10 == 2 || b % 10 == 6) cout << 6 << endl;
        else if (b % 10 == 3 || b % 10 == 7) cout << 6 << endl;
        else if (b % 10 == 4 || b % 10 == 8) cout << 6 << endl;
        else if (b % 10 == 5 || b % 10 == 9) cout << 6 << endl;
        else if (b % 10 == 1 ) cout << 6 << endl;
    }
        else if (a % 10 == 7)
    {
        if (b % 10 == 2 || b % 10 == 6) cout << 9 << endl;
        else if (b % 10 == 3 || b % 10 == 7) cout << 3 << endl;
        else if (b % 10 == 4 || b % 10 == 8) cout << 1 << endl;
        else if (b % 10 == 5 || b % 10 == 9) cout << 7 << endl;
        else if (b % 10 == 1 ) cout << 7 << endl;
    }
        else if (a % 10 == 8)
    {
        if (b % 10 == 2 || b % 10 == 6) cout << 4 << endl;
        else if (b % 10 == 3 || b % 10 == 7) cout << 2 << endl;
        else if (b % 10 == 4 || b % 10 == 8) cout << 6 << endl;
        else if (b % 10 == 5 || b % 10 == 9) cout << 8 << endl;
        else if (b % 10 == 1 ) cout << 8 << endl;
    }
        else if (a % 10 == 9)
    {
        if (b % 10 == 2 || b % 10 == 6) cout << 1 << endl;
        else if (b % 10 == 3 || b % 10 == 7) cout << 9 << endl;
        else if (b % 10 == 4 || b % 10 == 8) cout << 1 << endl;
        else if (b % 10 == 5 || b % 10 == 9) cout << 9 << endl;
        else if (b % 10 == 1 ) cout << 9 << endl;
    }
        else if (a % 10 == 0)
    {
        if (b % 10 == 2 || b % 10 == 6) cout << 0 << endl;
        else if (b % 10 == 3 || b % 10 == 7) cout << 0 << endl;
        else if (b % 10 == 4 || b % 10 == 8) cout << 0 << endl;
        else if (b % 10 == 5 || b % 10 == 9) cout << 0 << endl;
        else if (b % 10 == 1 ) cout << 0 << endl;
    }
       else if (a % 10 == 1)
    {
        if (b % 10 == 2 || b % 10 == 6) cout << 1 << endl;
        else if (b % 10 == 3 || b % 10 == 7) cout << 1 << endl;
        else if (b % 10 == 4 || b % 10 == 8) cout << 1 << endl;
        else if (b % 10 == 5 || b % 10 == 9) cout << 1 << endl;
        else if (b % 10 == 1 ) cout << 1 << endl;
    }
}
return 0;

}

  • created

    Oct '17
  • last reply

    Oct '17
  • 9

    replies

  • 1.2k

    views

  • 5

    users

  • 1

    like

  • 3

    links

  1. program przekazujemy jako link do ideone.com5

  2. nie zakładamy nowego wątku, jeżeli już jest wątek poświęcony temu zadaniu

  3. jeżeli jest wątek (a dla tego zadania jest dużo wątków - dzięki takim jak ty), to czytamy

  4. w twoim zadaniu może wystąpić co najwyżej 41 różnych danych wejściowych - czy to naprawdę trudne sprawdzić je wszystkie, i nie zawracać głowy innym na forum ?

przypadków, gdy program daje błędną odpowiedź jest całkiem sporo, oto jeden z nich:

1
2 10

O ile się nie mylę to forum służy do komunikacji, więc jeżeli masz problem z odpowiedzią na pytanie bez pretensji, że taki temat już istnieje to po co tu zaglądasz

Jeżeli chce się uzyskać odpowiedź to warto trzymać się konwencji danego forum i szanować odpowiedzi innych.

Warto np. wiedzieć, że na tym forum tematy nie są zamykane.

jeżeli o mnie chodzi, to wszystkie tematy tego użytkownika (adiks) są zamknięte :slight_smile:

Całe dwa, z których jeden na angielskim forum, przeniosłem tutaj, a przecież każdy pytający może to sam zrobić edytując temat swojego wątku… Dostał tam twoje podpowiedzi, z których nie skorzystał, więc jak znowu zapyta głupio i w niewłaściwym miejscu, to, powinno się go zignorować, ale zawsze może się zdarzyć dobra, pomocna dusza ;-). Jeżeli jednak spyta z sensem i doklejając się do tematycznego wątku, to czemu nie, każdy popełnia błędy i powinien mieć szanse na skruchę, pokutę i rozgrzeszenie :wink:

Warto, ale o tym zapominają nawet niektórzy światli tego forum, żeby daleko nie szukać:

i dalej :wink: :slight_smile:

I temu byłem za przerwaniem dyskusji, która musiała skończyć się w taki sposób.

Jak nie chce dalej dyskutować, to po prostu wyłącza się i nie dyskutuje, ale nie powinien jednostronnie wypowiadać się w sprawie zamknięcia tematu.

No raczej się mylisz. Do komunikacji służą telefony, maile, mesengery itd. To forum służy, jak sama nazwa wskazuje do [kulturalnej] dyskusji, umożliwia zadawanie pytań, i ewentualnym uzyskiwaniu odpowiedzi lub nie, otrzymaniem mniej lub bardziej konstruktywnej krytyki i podpowiedzi lub narażenie się na całkowite ignorowanie i pozostaniu bez odpowiedzi, ale w między czasie, po zadaniu pytania czasami samemu łatwiej dojść do sedna.
W każdym razie, w świetle powyższego, twoja uwaga:

Jest zupełnie nie na miejscu i nie kulturalna. Przecież to nikt inny tylko Ty miałeś w tamtym momencie problem z zadaniem.,

PS
Za[pomniałem o komunikacji publicznej, samolotach i takich tam :wink:

Poczułem się wywołany do dyskusji :wink:

Chciałem zakończyć jedynie temat cichego przemycania gotowca do wcale nie tak trywialnego zadania. Temat różnych trudności związanych z zadaniem i jego interpretacją jest wciąż otwarty. Również dla mnie :wink:

Podałem nawet przykłady dwóch zadań, gdzie również możemy toczyć dysputy o sposobie ich rozwiązania, co jednak działa na szkodę ogółu użytkowników. Napisałem to mając rozwiązane jedno z nich, potem w wolnym czasie rozwiązałem kolejne i zdania nie zmieniłem - są pewne granice pomocy jeżeli forum SPOJa ma różnić się czymś od https://www.google.pl/search?q=zadania+domowe+online&ie=utf-8&oe=utf-8&client=firefox-b-ab&gfe_rd=cr&dcr=0&ei=o5HcWcmCDI3SXtavgOgO11.

PS
Moja decyzja nie była jednostronna - @redysz także był za przerwaniem dyskusji, ale pisał o tym do mnie na PW :wink:

PS 2
Skończyło się tak, że gotowiec jednak jest na forum :wink:

Ciężko usunąć kod AC - czy to [kasowanie z forum kodów AC i prawie AC] obowiązuje tylko początkujących-pytających?

PS
Wygląda, że ciężko, więc zrobiłem to za Ciebie - wybaczysz? :wink:

Ten kod był wstawiony jako część dyskusji, aby nie opierać się na samych hipotezach co działa a co nie. Jeżeli jego usunięcie nie wywrze wpływu na możliwość zrozumienia kolejnych postów (nie sprawdzałem) to nie mogę mieć zastrzeżeń.

Kolejne (i poprzednie) posty to wzory i ich omówienie, a obecnie każdy ma wgląd w historię edycji więc… jeden pies :wink: Powiem tak - dla mnie zadanie straciło urok (w sumie jak wiele na SPOJu po pewnych zmianach) i jedynie agresywne kasowanie postów zmieniłoby moje zdanie. Jeżeli tylko ja uważam, że tamta sytuacja była be i należało przerwać dyskusję - ok, przyjmuję do wiadomości i już nic nie mówię :wink: