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

SPOJ - Test3

VPS Starter Arubacloud
0 głosów
115 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,900 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 216 wizyt
pytanie zadane 1 października 2022 w C i C++ przez Dani Obywatel (1,450 p.)
0 głosów
1 odpowiedź 160 wizyt
+1 głos
1 odpowiedź 155 wizyt
pytanie zadane 6 kwietnia 2022 w C i C++ przez moskiew Nowicjusz (190 p.)

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...