algorytm.org

algorytm z nawrotami

Pomoc
Potrzebujesz algorytmu/kodu źródłowego, którego nie znalazłeś(aś) w serwisie?
Zamów algorytm!
Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Forum www.algorytm.org :: Arytmetyka i procedury numeryczne
Witaj Gość   
[Zarejestruj się]  
[Zaloguj się]
Zamieść odpowiedź
 algorytm z nawrotami

Witam. Muszę napisać algorytm, który w std wejściu dostaje z liczb, i musi na std wyjściu wyświetlić te liczby podzielone na dwie równe połowy, np. dostaję liczby:

Na standardowym wejściu w pierwszej linii program otrzymuje liczbę N (1 ≤ N ≤ 99), która określa liczbę składowych majątku bankrutującej spółki, czyli mówiąc prościej: liczbę przedmiotów, które do niej należą.
W następnych N liniach wypisane są (każda w osobnej linii) całkowite wartości przedmiotów Di (1 ≤ Di ≤ 1000000).


13
99
58
55
44
44
39
26
22
16
13
12
10
2, a na wyjściu:
99 58 39 22 2 oraz
55 44 44 26 16 13 12 10

Algorytm powinien być implementacją algorytmu przeszukiwania z nawrotami.

W rozwiązaniu można użyć funkcji sortującej z biblioteki standardowej.


Ma ktoś jakiś pomysl?
Cytuj
Czy ma to wyglądać następująco??
1. Jeżeli suma nieparzysta lub największy element większy niż polowa sumy to już nić się nie zrobi.
2. Sortujesz listę nierosnąco tb[].
3. Obliczasz połowę sumy P.
4. Ustawiasz aktualną sumę S na 0.
5. Ustawiasz aktualny indeks I na 0.
6. Jeżeli S+tb[ I ]==P to zaznaczamy tb[ I ] i mamy rozwiązanie gotowe, koniec
7. Jeżeli S+tb[ I ]

8. Jeżeli I poza zakresem to rozwiązanie nie istnieje i koniec, jeżeli nie jest poza zakresem to przejdź do 6
9. Znajdź zaznaczone tb[ K ] o największym K, odznacz go ustaw I na wartość K+1, przejdź do 6.

Może ktoś do tego napisać kod w c++??

Cytuj
photo
Uważam, że należy włączyć i wyłączyć komputer, to na pewno pomoże ;)
Cytuj
photo
[Gość 27-04-2016 11:08:03]:

Uważam, że należy włączyć i wyłączyć komputer, to na pewno pomoże ;)



Popieram Gościa wyżej! ;D
Cytuj
Zamieść odpowiedź Strona # 
Szybka odpowiedź

Kod:    


Powered by ccBoard