D. Baza danych Na rynku towarowym działa 1 <= m <= 100 producentów oferujących 1 <= n <= 100 produktów. Każdy producent ustala swoją cenę jednostkową danego produktu (cena jest liczbą całkowitą nieujemną, nieprzekraczającą 1000 ). Twoim zadaniem jest zarządzanie cenami produktów poszczególnych producentów tzn. przechowywanie, aktualizacja oraz wyszukiwanie informacji o produktach wszystkich producentów. Ceny należy przechowywać w dwuwymiarowej tablicy – wiersze odpowiadają producentom, natomiast kolumny produktom. Zakładamy, że producenci oraz produkty mają przypisane numery zaczynając od 0 (zgodnie z indeksowaniem tablic) . Na zdefiniowanej tablicy cen należy móc wykonywać pewne operacje. Operacja dana jest przez sygnaturę (określoną przez literę alfabetu) oraz opcjonalne parametry. Niech t(i) ( 0 <= t(i) <= 1000 ) oraz cena_jednostokowa(i) oznaczają odpowiednio ilość oraz cenę jednostkową produktu i . Na potrzeby zadania definiujemy podstawowe pojęcie sumarycznej ceny zakupu produktów w ilościach t(0),...,t(n-1) u danego producenta jako wyrażenie t(0)*cena_jednostkowa(0) + ... + t(n-1)*cena_jednostkowa(n-1) . Wejście: W kolejnych liniach opisane są wymagane do wykonania operacje o następującym formacie: • A m n t – stworzenie nowej tablicy cen o rozmiarze m na n na podstawie listy t (tablica podawana jest wierszami a poszczególne liczby oddzielone spacjami) • B i j c - aktualizacja ceny produktu j producenta i na cenę c • C i1 i2 – zamiana cen wszystkich produktów pomiędzy producentem i1 a producentem i2. Przykład: jeśli ceny produktów u producenta i1 są równe 3 4 2 natomiast ceny u producenta i2 wynoszą 10 6 8 to w wyniku wykonania tej operacji producent i1 powinien mieć zdefiniowane kolejne ceny jako 10 6 8 a producent i2 jako 3 4 2 . • D i – przesunięcie cykliczne w prawo wszystkich cen jednostkowych producenta i. Przykład : jeżeli producent i miał ustalone ceny jednostkowe równe 10 6 8, to po wykonaniu tej operacji zostaną one zmienione na 8 10 6 . • E i t(0) ... t(n-1) - wypisanie sumarycznej ceny zakupu produktów w ilościach t(0),...t(n-1) u producenta i. Przykład: jeśli kolejne ceny produktów producenta i wynoszą 3 2 7 oraz liczby t1, t2, t3 są równe 3, 1, 5, to w wyniku należy wypisać wynik operacji 3*3+1*2+5*7, czyli 46. • F t1 ... tn – należy wypisać posortowaną niemalejąco listę sumarycznych cen zakupu produktów w ilościach t(0),...,t(n-1) dla wszystkich producentów. Zabronione jest używanie bibliotek STL. Przykład: dla tabeli postaci: 2 3 1 2 1 3 3 2 2 oraz zapytania F 1 2 2 poprawną odpowiedzią jest: 10 10 11 • G j - wypisanie numeru producenta oferującego najniższą cenę jednostkową produktu j (w przypadku kilku producentów oferujących najniższą cenę, wypisz najniższy z numerów producentów oferujących cenę minimalną). • K – zakończenie działania programu Zakładamy, że podawane dane są zawsze poprawne. W szczególności pierwszą operacją jest stworzenie tablicy cen. Poza tym, może wystąpić wiele operacji tworzenia tablicy cen – wówczas nowa tablica powinna zastąpić poprzednią. Wyjście: Na wyjściu program powinien w kolejnych liniach podawać wyniki wykonywanych operacji (dotyczy sygnatur E, F, G ), a po napotkaniu sygnatury K powinien wypisać aktualną zawartość tabeli (w kolejnych liniach wypisujemy kolejne wiersze tablicy, a za każdym elementem wiersza stawiamy znak spacji). Całość kończymy przejściem do nowej linii. Przykład 1: Dla danych wejściowych: A 2 3 4 5 6 1 2 3 E 0 0 0 0 B 0 1 10 C 0 1 E 0 1 1 1 B 1 0 5 D 1 C 0 0 E 0 1 2 1 G 1 K poprawną odpowiedzią jest: 0 6 8 0 1 2 3 6 5 10
piterwu666
Odpowiedź w załączniku, zadanie pojawiło się parę dni temu w serwisie.