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

Jak zrobić zadanie gra ? (c++, programowanie dynamiczne)

Cloud VPS
0 głosów
623 wizyt
pytanie zadane 18 sierpnia 2016 w C i C++ przez hardusername Początkujący (370 p.)

Cześć,

czy moglibyście mi proszę podpowiedzieć jak zrobić takie zadanie?

Limit pamięci: 32 MB

Kolejny deszczowy dzień. Paweł i Gaweł znów byli zmuszeni do pozostania w domu. W związku z brakiem zajęć postanowili wymyślić jakąś grę.

Paweł wpadł na genialny pomysł. Na kartce papieru narysował image pól. Na każdym polu znajdowały się dwie liczby - pierwsza z nich była numerem pola (liczba naturalna od image do image, pola miały parami różne numery), a druga jego wartością (liczba całkowita od image do image). Na polu numer image umieścił pionek. Zadaniem gracza było wykonywanie kolejnych ruchów, polegających na rzucie sześcienna kostką (z numerami od image do image napisanymi na ściankach) oraz przesuwaniu pionka o wskazaną liczbę oczek. Gra kończyła się, kiedy pionek stanął na pole o numerze image. Wynikiem, jaki uzyskał gracz, była suma wartości pól na jakich stał pionek.

Po rozegraniu kilku partii Paweł i Gaweł otrzymali kilka różnych wyników, jednak nie wiedzieli czy któryś z nich był największym możliwym do uzyskania. Zadzwonili więc do Ciebie, utalentowanego informatyka, abyś napisał program, który dla danej planszy obliczy maksymalny możliwy do uzyskania wynik.

Wejście

Pierwszy wiersz standardowego wejścia zawiera jedną liczbę całkowitą image (image) oznaczającą liczbę pól na planszy. Drugi wiersz zawiera image liczb całkowitych imageimage, ..., image (image), gdzie image oznacza wartość image-tego pola.

Wyjście

Pierwszy i jedyny wiersz standardowego wyjścia powinien zawierać jedną liczbę całkowitą, oznaczającą maksymalny możliwy do uzyskania wynik na danej planszy.

 

Przykład

Dla danych wejściowych:

4
1 2 -1 1

poprawną odpowiedzią jest:

4

 

komentarz 18 sierpnia 2016 przez MetRiko Nałogowiec (37,110 p.)
Czy to nie jest czasem jakieś zadanie na konkurs programistyczny, czy coś w ten deseń?
1
komentarz 18 sierpnia 2016 przez draghan VIP (106,230 p.)
http://main.edu.pl/pl/archive/ilocamp/2011/gra

Autorze pytania - z czym masz problem? Całego zadania nikt za Ciebie tu nie zrobi. ;)

1 odpowiedź

0 głosów
odpowiedź 18 sierpnia 2016 przez Porcupine Nałogowiec (31,560 p.)

Wyobraź sobie, że stoisz na polu numer n i osiągnąłeś już ten maksymalny wynik. Za razem jakoś musiałeś się na niego dostać - masz koska ma 6 numerków {1,2,3,4,5,6}, wniosek: przyskoczyłeś z jednego z pól o numerku należącym do zbioru {n - 1, n - 2, n - 3, n - 4, n - 5, n - 6}. Teraz pytanie, z którego? - A, no z tego, do którego dojście gwarantuje największą sumę i tak rekurencyjnie zawsze masz 6 możliwości i wybierasz najkorzystniejszą.

Poczytaj o idei programowania dynamicznego i na podstawie powyższej odpowiedzi powinieneś dać radę to zaimplementować.

Podobne pytania

–2 głosów
1 odpowiedź 268 wizyt
pytanie zadane 25 listopada 2016 w C i C++ przez SikorKK Użytkownik (610 p.)
0 głosów
0 odpowiedzi 176 wizyt
0 głosów
0 odpowiedzi 207 wizyt
pytanie zadane 30 sierpnia 2024 w Python przez Zavvys Nowicjusz (120 p.)

93,463 zapytań

142,459 odpowiedzi

322,729 komentarzy

62,843 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

Kursy INF.02 i INF.03
...