Podgląd pojedynczego posta
Stary 28.06.2005, 15:32   #8
pawelblu
Recydywista - Wielokrotny
Zlotowicz
CDRinfo VIP
 
Avatar użytkownika pawelblu
 
Data rejestracji: 17.01.2003
Lokalizacja: Wawa
Posty: 5,265
pawelblu niedługo stanie się sławny ;) <50 - 149 pkt>pawelblu niedługo stanie się sławny ;) <50 - 149 pkt>
algo jest dosc znany ... podobnie jak ten problem.
int sum = 0
int wsk = 0
int wynik = 0

sum oznacza ile wynosi suma z obrabianego kawalka.
wynik oznacza jaki wynik daje program/funckja whatever.
wsk - w ktorym miejscu tablicy jestesmy.

Zczytujemy wejscie do tablicy.
(teraz widze ze kolejnym minusem tych testow jest to ze nie ma na poczatku podanej liczby elementow i trzeba dawac wielkosc na sztywno, lub powiekszac tablice dynamiczne, ale to jest chyba za trudne jak na liceum).
Tak wiec sila rzeczy robimy tablice np. 10000 elem. i musimy miec oddzielnie przechowywana jej wielkosc. Inicjalizujemy zerami. Wtedy zczytujemy i ustawiamy wielkosc.

Lecimy od poczatku tablicy. Jezeli napotkany element jest >=0 to dodajemy do sum i idziemy dalej (o ile nie koniec). Jesli napotkany elem. jest <0 to sprawdzamy czy sum > wynik, jezeli tak to wynik := sum, sum := sum + napotkany_el, jezeli sum < 0 to sum:=0 i jezeli nie koniec idziemy dalej.

Nie sprawdzalem tego ale na szybko wydaje sie byc dobre i szybkie.

EDIT: Napisanie tego koncepcyjnie zajelo 10 min. Zakodowanie do 60 min (zalezy od tego jak kto sobie poradzi z tym wejsciem. U nas preferowane jest podawanie niezbednych wielkosci w pierwszym wierszu, co umozliwia deklaracje odpowiednich struktur i zmiennych sterujacych petlami, ale da sie to zrobic 'na chama' zczytujac az do bledu czy EOF i zliczajac ready/scany whatever ).

EDIT2: mozna zrobic jeszcze tak, ze otwieramy plik, robimy ready i liczymy ile elem. Zamykamy, mallocujemy tablice taka jak trzeba i otwieramy plik ponownie, wiedzac juz ile trzeba zczytac, ale to juz chyba przerost formy nad trescia - szczegolnie jak masz dane testy ktore beda wykonywane na algo

Ostatnio zmieniany przez pawelblu : 28.06.2005 o godz. 15:38
pawelblu jest offline   Odpowiedz cytując ten post