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

CHAOS - Godzina chaosu

0 głosów
986 wizyt
pytanie zadane 20 sierpnia 2018 w SPOJ przez Piotr Błaszczak Bywalec (2,890 p.)

Cześć, mam problem z zadaniem ze spoja(https://pl.spoj.com/problems/CHAOS/). Napisałem program który u mnie działa jak należy, ale spoj odrzuca mi go z powodu "Błędnej Odpowiedzi". Wie ktoś dla czego?

Mój kod:

#include <iostream>
#include <string>

using namespace std;

string czas;

bool testPalindromu(string napis)
{
    int i,j,w=0;
    napis.erase(2,1);
    if(napis[0]=='0')napis.erase(0,1);
    if(napis[0]=='0')napis.erase(0,1);
    if(napis[0]=='0')napis.erase(0,1);
    for(i=0,j=napis.length()-1;i<j;i++,j--)
    {
        if(napis[i]!=napis[j])
            w=1;
    }
    if(w==0)return true;
    else return false;
}

void dodajMinute()
{
    if(czas[4]=='9')
    {
        czas[4]='0';
        if(czas[3]=='5')
        {
            czas[3]='0';
            czas[1]++;
            if(czas[1]=='9'||czas[1]=='4'&&czas[0]=='2')
            {
                if(czas[1]=='4'&&czas[0]=='2')czas="00:00";
                else
                {
                    czas[1]=0;
                    czas[0]++;
                }
            }
        }
        else czas[3]++;
    }
    else czas[4]++;
}

int main()
{
    int t;
    cin>>t;
    for(int i=0; i<t; i++)
    {
        cin>>czas;
        dodajMinute();
        while(testPalindromu(czas)==false)
        {
            dodajMinute();
        }
        cout<<czas<<endl;
    }
    return 0;
}

 

1
komentarz 20 sierpnia 2018 przez niezalogowany

Dla godz 19:00 poprawna odpowiedz powinna wynosić 20:02, a nie 10:01. Podobnie dzieje się dla godzin:

08:58
08:59
09:59
19:00 - 19:59
komentarz 20 sierpnia 2018 przez Piotr Błaszczak Bywalec (2,890 p.)
Wiem, że jest coś nie tak z funkcją dodajMinute(). Tylko co? Podpowiesz czego nie uwzględniłem?
komentarz 20 sierpnia 2018 przez niezalogowany

Spróbuj jakoś poprawić tą część kodu:

 if(czas[1]=='9'||czas[1]=='4'&&czas[0]=='2')
            {
                if(czas[1]=='4'&&czas[0]=='2')czas="00:00";
                else
                {
                    czas[1]=0;
                    czas[0]++;
                }
            }

Z jakiegoś powodu coś tu nie działa. Ciężko mi coś więcej powiedzieć.

komentarz 20 sierpnia 2018 przez Piotr Błaszczak Bywalec (2,890 p.)
Już wiem! zamiast czas[1]=0; trzeba dać czas[1]='0';
komentarz 20 sierpnia 2018 przez Piotr Błaszczak Bywalec (2,890 p.)

O tak ma być:

   if(czas[1]=='0'||czas[1]=='4'&&czas[0]=='2')
            {
                if(czas[1]=='4'&&czas[0]=='2')czas="00:00";
                else
                {
                    czas[1]='0';
                    czas[0]++;
                }
            }

 

komentarz 20 sierpnia 2018 przez niezalogowany
O faktycznie :) Ja zastanawiałem się nad jakimiś błędami w warunkach, ale nie mogłem ich znaleźć :)

1 odpowiedź

0 głosów
odpowiedź 22 listopada 2019 przez Char Mander Nowicjusz (180 p.)

Mam problem z tym samym zadaniem - Godzina Chaosu: https://pl.spoj.com/problems/CHAOS/ . Mam bledna odpowiedz na spoju. Prawdopodobnie nie na 100% dobrze zrozumialem polecenie, ten fragment:

Dla każdego przypadku na wyjściu powinna pojawić się godzina w formacie "GG:MM". UWAGA: Sprawdzając czy godzina jest palindromem nie bierzemy pod uwag wiodących zer liczby GG, a w przpadku gdy GG = 0, wtedy nie bierzemy również pod uwagę zer wiodących liczby MM.

 Jako palindromy rozumiem kolejno: 00:00, 00:01, 00:02,00:03, 00:04, 00:05,00:06,00:07, 00:08,00:09, 00:11,00:22,00:33,00:44,00:55 i teraz uwaga: ALBO 1): 01:01, 02:02 i analogicznie do 09:09 i dalej od 10:01 nie mam watpliwosci ALBO 2): 01:01,01:11,01:21,01:31,01:41,01:51,02:02,i tak jak dla 01 godziny analogicznie dla godziny 02, godziny 03 az do godziny 09 i dalej od 10:01 nie mam watpliwosci. Wiec prosze o podpowiedz ktora wersja 1) czy 2) jest prawidlowa. 3) I jeszcze dowiedzialem sie,  ze tak jak wyzej, np. 01:01 to palindrom a nie 01:10, czy to poprawne rozumowanie?

komentarz 24 lutego 2021 przez Billy Użytkownik (680 p.)
Hejka, wiesz o co w końcu chodziło?

Podobne pytania

0 głosów
0 odpowiedzi 393 wizyt
pytanie zadane 29 listopada 2020 w C i C++ przez milosz123 Użytkownik (720 p.)
0 głosów
1 odpowiedź 1,238 wizyt
0 głosów
1 odpowiedź 2,961 wizyt
pytanie zadane 30 kwietnia 2016 w C i C++ przez maciek061 Gaduła (4,490 p.)

93,741 zapytań

142,676 odpowiedzi

323,294 komentarzy

63,323 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...