ALGORYTMY I STRUKTURY DANYCH ĆWICZENIA, III SEMESTR
Transkrypt
ALGORYTMY I STRUKTURY DANYCH ĆWICZENIA, III SEMESTR
ALGORYTMY I STRUKTURY DANYCH WICZENIA, III SEMESTR, STUDIA DZIENNE Temat : Zadania programistyczne, cz. I. Zadanie 1 „Puzzloliczbowo” Dany jest kwadrat o rozmiarach n na n (n<=10000). Na polach jednostkowych tego kwadratu wpisane s losowo liczby z zakresu do 1 do n*n. Ka da pozycja kwadratu jest opisana dwoma współrz dnymi x i y. 1<=x, y<=n. x oznacza numer wiersza kwadratu a y numer kolumny. Pole w lewym górnym rogu kwadratu ma współrz dne (1,1) a pole z prawego górnego rogu (n, n). Nale y poda minimaln liczb przestawie dwóch liczb w polach kwadratu, tak, aby otrzyma uporz dkowany rosn co ci g liczb. Przykład Kwadrat przed przestawieniami: n=3 325 478 196 Minimalna liczba ruchów wynosi : 5 Uzasadnienie: Nale y wykona nast puj ce zamiany: [3,1] i [1,1]; [3,1] i [2,2]; [2,2] i [1,3]; [2,3] i [3,3]; [3,2] i [3,3]. Kwadrat po przestawieniu: 123 456 789 Napisz program, który przy danym n i ustawieniu liczb w polach kwadratu n na n ustali minimaln liczb przestawie niezb dnych do uzyskania porz dku rosn cego liczb. Zadanie 2 „Autostrada” Pewnie trudno Ci b dzie uwierzy , ze to nie sen, ale przynajmniej spróbuj sobie wyobrazi , ze przez nasz pi kn krain biegnie od gór a do morza szeroka i bezpłatna autostrada. Mało tego, po obu jej stronach a si roi od renomowanych stacji benzynowych, restauracji i co najwa niejsze równie szybkich jaj sama autostrada stacji serwisowych. Wła nie jedna z wiod cych na rynku firm motoryzacyjnych wygrała przetarg na zbudowanie wzdłu naszej pi knej autostrady, sieci swoich stacji i zastanawia si , przy której z tych stacji zbudowa dodatkowo skład cz ci zamiennych. Miejsce jego budowy trzeba zaplanowa tak, a eby suma odległo ci pomi dzy składem a stacjami była najmniejsza. Firma poprosiła Ciebie, jako dobrze zapowiadaj cego si programist , aby napisał program ustalaj cy miejsce budowy skład, przy zadanej lokalizacji stacji serwisowych. W bardzie precyzyjnej wersji Twoje zadanie jest opisane nast puj co. B dziesz znał lokalizacj n stacji serwisowych poło onych wzdłu autostrady. Lokalizacj ow b dziesz miał podan w postaci n-elementowego ci gu liczb całkowitych: d1, d2, .., dn. Liczba di 1 ALGORYTMY I STRUKTURY DANYCH WICZENIA, III SEMESTR, STUDIA DZIENNE oznacza liczb kilometrów od pocz tku autostrady do miejsca stacji o numerze i. Twoim zadaniem jest okre lenie numeru k stacji serwisowej, która minimalizuje sum n i =1 di − dk . Jako wynik wypisywana jest suma odległo ci pomi dzy wyznaczonym składem a stacjami serwisowymi. Zakładamy, e liczba stacji serwisowych n spełnia nierówno ci: 1 ≤ n ≤ 20000 , a liczby di (i=1, 2, ..., n) to liczby całkowite spełniaj ce nast puj ce warunki: 5 1 ≤ d i ≤ 10 , d i ≠ d j , i ≠ j . Przykład Dane: n=3; d1=10, d2=4, d3=8 Wynik: 6 Zadanie 3 (*) „Kradzione nie tuczy ?” Robotnicy budowlani pracuj cy na placu przy hurtowni piwa zauwa yli, e magazyn hurtowni jest bardzo słabo pilnowany i bez problemu mo na z niego wynie puszki piwa. Tylko jak? Wpadli na „genialny” (?!) pomysł. Zauwa yli, e rury sanitarne, które mogli bez problemu przewozi przez bram hurtowni maj rednic niewiele wi ksz od rednic puszek piwa. Postanowili upakowa ka d z rur puszkami, a nast pnie wywie tak „obci one” rury z hurtowni. Ka da z puszek piwa miała znan cen , wi c fachowcy dbali te o to, aby w rurach znalazły si najcenniejsze z nich. Dla niepoznaki ka da rura miała nało one obustronne za lepki, aby stra nik nie zauwa ył jej wn trza. Spryt fachowców nie znał granic, wi c dbali te o to, aby ka da z rur była maksymalnie upakowana, czyli suma wysoko ci puszek w rurze była równa wysoko ci całej rury. Wszystko by poszło gładko, gdy nie pewna prawda. Wysoko puszek, które mogły by wło one do rury oraz wysoko rur była pewn całkowit pot g dwójki (2i, gdzie 1000=>i>=1). Nie jest to moralnie wła ciwe, ale napisz program, który przy danych wysoko ciach rur wyra onych wykładnikami pot g dwójki oraz danym asortymencie puszek, okre laj cym ich wysoko ci (równie w postaci wykładników pot g dwójki) oraz warto ci w zł sprawdzi, czy mo liwe jest upakowanie wszystkich rur puszkami. Je eli sposobów upakowania b dzie kilka, to nale y wybra taki, który ma najwi ksz warto ł czn puszek. Zakładamy, e liczba puszek w magazynie n spełnia nierówno ci: 1=<n<=10000 . Ka da z puszek scharakteryzowana jest przez dwie nieujemne liczby całkowite i oraz w. S to odpowiednio: i - wysoko puszki i w - jej warto w zł. Wiadomo, e wysoko jest pot g dwójki, zatem i jest wykładnikiem tej pot gi. Warto puszki w spełnia natomiast warunek w<=10000. W skład zestawu danych wej ciowych wchodzi tak e dodatnia liczba całkowita t okre laj ca, ile ró nych wysoko ci maj rury, którymi dysponuj fachowcy. Z kolei ka da z rur jest scharakteryzowana przez par dodatnich liczb całkowitych oddzielonych pojedynczym odst pem. Pierwsza z tych liczb l jest wysoko ci rury (wła ciwie wykładnikiem pot gi dwójki), natomiast druga liczba d oznacza ilo dost pnych rur tej wysoko ci. Wiadomo, e t<=5000, a l<=1000. W wyniku wykonania programu nale y wypisa napis NIE, je eli nie istnieje mo liwo upakowania wszystkich rur puszkami albo liczba całkowita równa maksymalnej, ł cznej warto ci puszek z wszystkich rur, o ile mo na nimi szczelnie wypełni wszystkie rury z podanego zestawu. 2 ALGORYTMY I STRUKTURY DANYCH WICZENIA, III SEMESTR, STUDIA DZIENNE Przykład Dane: n = 5; charakterystyki puszek (i w ): 1 4, 1 3, 2 6, 2 2, 1 5; liczba rur: 2; charakterystyka rur (l d): 1 1, 2 1 Wynik: 20 3