• 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)

VPS Starter Arubacloud
0 głosów
481 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ź 224 wizyt
pytanie zadane 25 listopada 2016 w C i C++ przez SikorKK Użytkownik (610 p.)
0 głosów
0 odpowiedzi 158 wizyt
0 głosów
0 odpowiedzi 88 wizyt
pytanie zadane 30 sierpnia w Python przez Zavvys Nowicjusz (120 p.)

92,958 zapytań

141,919 odpowiedzi

321,149 komentarzy

62,289 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.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...