• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

SPOJ - Test3

Object Storage Arubacloud
0 głosów
118 wizyt
pytanie zadane 5 maja 2022 w C i C++ przez Paweł110 Nowicjusz (140 p.)

Witam,

program działa, wypisuje dobre dane dla określonych warunków (tak mi się wydaje) jednak spoj nie przepuszcza.

#include <iostream>

using namespace std;

int main()
{
    int liczba;
    int i=0;
    int j=0;
    int tablica[100000];
    int tablicaprim[100000];
    while(cin>>liczba)
    {
        tablica[i]=liczba;
        i++;
        if(tablica[i-1]==42 && tablica[i-2]!=42 && tablica[i-3]==42 && tablica[i-4]!=42 && tablica[i-5]==42 && tablica[i-6]!=42)
        {
                for(j=0; j<i; j++)
                {
                    tablicaprim[j]=tablica[j];
                }
        }
    }
    for(int k=0; k<j; k++)
    {
        cout<<tablicaprim[k]<<endl;
    }

    return 0;
}

Proszę o pomoc co jest nie tak. 

1 odpowiedź

0 głosów
odpowiedź 5 maja 2022 przez Whistleroosh Maniak (56,980 p.)

Masz zły warunek w ifie. Masz wypisywać liczby, aż nie natrafisz po raz trzeci na sekwencje "x 42", gdzie x jest dowolną liczbą różną od 42. Np. algorytm powinien skończyć się po wczytaniu:

1 42 2 42 3 4 5 42   (szukane sekwencje są pogrubione)

a Twój się dla tej sekwencji nie skończy.

Poza tym nie wiadomo czy tych liczb będzie aby na pewno mniej niż 100000. Więc lepiej nie korzystać z tablic.

komentarz 5 maja 2022 przez Oscar Nałogowiec (29,290 p.)
edycja 5 maja 2022 przez Oscar
Warunek ten jest zły też z technicznego punktu widzenia - przy wprowadzaniu pierwszych liczb sięga bez sprawdzania na ujemne indeksy.

 

Tak jak zasugerował @Whistleroosh w ogóle koncepcja/struktura programu jest zła. Dane trzeba przepisywać na bieżąco i tylko sprawdzać warunek zakończenia, jednak nie wiadomo czy SPOJ potrafi tego typu okoliczności sprawdzać.

Podobne pytania

0 głosów
2 odpowiedzi 220 wizyt
pytanie zadane 1 października 2022 w C i C++ przez Dani Obywatel (1,450 p.)
0 głosów
1 odpowiedź 166 wizyt
+1 głos
1 odpowiedź 157 wizyt
pytanie zadane 6 kwietnia 2022 w C i C++ przez moskiew Nowicjusz (190 p.)

92,563 zapytań

141,416 odpowiedzi

319,595 komentarzy

61,948 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...