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

Problem z zadaniem z olimpiady informatycznej (brak pomysłu)

Object Storage Arubacloud
+1 głos
621 wizyt
pytanie zadane 5 marca 2018 w C i C++ przez marker Nowicjusz (130 p.)
Dzień dobry,

rozwiązuje sobie zadania z roznych olimpiad informatycznych i natknąłem się na zadanie, którego nie potrafię rozwiązać. Męczyłem się nad nim dosyć długo i nic mi nie przychodzi do głowy. Jeśli ktoś miałby jakiś pomysł to będę bardzo wdzięczny. Zadanie podsyłam tutaj: http://www94.zippyshare.com/v/nknBg25W/file.html

Pozdrawiam serdecznie
1
komentarz 5 marca 2018 przez Paweł Dymek Bywalec (2,300 p.)
nie dawaj takich linkow, wklej tresc zadania tutaj, albo na jakis serwis gdzie po kliknieciu mozna je przeczytac a nie sciagac cos
komentarz 5 marca 2018 przez marker Nowicjusz (130 p.)

Wejście i wyjście mi się nie zmieściły, więc wyślę w kolejnej wiadomości

komentarz 5 marca 2018 przez marker Nowicjusz (130 p.)

A oto wejście i wyjście:

1 odpowiedź

0 głosów
odpowiedź 5 marca 2018 przez Paweł Dymek Bywalec (2,300 p.)
Tu jest moim zdaniem błąd w przykładnie, bo jak niby z 21 ma ułożyć? z treści zadania jasno wynika, że liczba użytych patyczków musi być parzysta.

Anyway, zauważ, że dla n>=12 zachodzi zasada, że ilość patyczków= suma kolejnych potęg liczby 2. Dla drugiej śnieżynki jest to 2 do 2+2do3, dla kolejnej dodajesz 2do4, itd itd. Powtarzaj pętlę tak długo, aż n<= licznikowi, a ten powiększaj w pętli o X potęgę liczby 2 inkrementując X co obieg pętli. Jeśli po wykonaniu pętli licznik==n to mamy liczbę odpowiednią do zbudowania śnieżynek z dokładnie n patyczkow. Ilosc rodzajow + X-1.

Moim zdaniem zadanie jest źle ułożone. Z każdej nieparzystej liczby zostaną patyki.
komentarz 6 marca 2018 przez Erfik878 Początkujący (310 p.)
edycja 6 marca 2018 przez Erfik878

w zadaniu jest napisane, że śnieżkę zaczyna układać z dowolnej liczby patyczków (minimum to 2, zatem podstawa może wynosić i 4,8,12 itd.). potem już monotonnie tą podstawę się mnoży przez kolejnę potęge dwójki i dodaje do siebie (x*2^0 + x*2^1 + x*2^2 .... x - podstawa) tak długo, aż ta suma nie jest większa od liczby patyczków, a jeśli w którymś momencie suma jest równa liczbie patyczków, to mamy już właśnie jedną całą śnieżkę. 

mam nawet gotowy kod, który prawidłowo mi rozwiązał to zadanie.

#include<iostream>

using namespace std;

bool SNIEZKA(int maks,int podstawa, int mnoznik)
{
    if (podstawa * 2>maks)
    {
        return false;
    }
    else
    {
        maks -= (podstawa * mnoznik);
        if (maks == 0)
        {
            return true;
        }
        else
        {
            SNIEZKA(maks,podstawa,mnoznik*2);
        }
    }
}
int main ()
{
   int test;
   cin>>test;
   for (int i = 0;i < test;i++)
   {
       int patyczki;
       cin >> patyczki;
       int maks_patyczki = patyczki;
       patyczki/=3;
       int dalej;
       if (maks_patyczki%2==1)
           dalej = 3;
       else
           dalej = 2;

       int wynik = 0;
       for (int j = dalej;j<=patyczki;j+=2)
       {
           bool opcja = SNIEZKA(maks_patyczki,j,1);
           if (opcja == true)
           {
               wynik++;
           }
       }
       cout << wynik <<endl;
   }
}

być może nie koniecznie program się zmieści w limicie pamięci, ale jak pisałem nie zważałem na to. 

komentarz 9 marca 2018 przez Paweł Dymek Bywalec (2,300 p.)
Tak, ale zawsze muszą być to liczby parzyste, natomiast w przykładach na wejsciu jest liczba 21 a na wyjsciu 2, co jest bledem, bo jest w zadaniu zaznaczone, że nie może być niepełna śnieżynka. z 7 ułożysz jedną śnieżynkę (6) i zostanie 1
komentarz 17 marca 2018 przez Erfik878 Początkujący (310 p.)
da się ułożyć dwie pełne różne śnieżki z 21 patyczków. poza tym w zadaniu nie ma napisane że liczba patyczków ma być parzysta

Podobne pytania

0 głosów
0 odpowiedzi 221 wizyt
+1 głos
3 odpowiedzi 891 wizyt
0 głosów
0 odpowiedzi 309 wizyt
pytanie zadane 5 października 2016 w C i C++ przez Keretian Nowicjusz (140 p.)

92,568 zapytań

141,420 odpowiedzi

319,622 komentarzy

61,954 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!

...