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

Podobne dokumenty