Giter Site home page Giter Site logo

michal0929's Projects

appbank icon appbank

Aplikacja Bank - Projekt końcowy - Programowanie obiektowe

koleje-asd5 icon koleje-asd5

W pewnym postępowym kraju od stuleci rozwija się transport kolejowy. Początkowo połączenia kolejowe obejmowały tylko największe i najszybciej rozwijające się miasta, a prędkość pociągów pozostawiała wiele do życzenia. Według opowieści starszych można było wyskoczyć na grzyby, gdy pociąg przejeżdżał przez las, by po grzybobraniu załapać się jeszcze do ostatniego wagonu. Z czasem prędkości pociągów rosły, by w końcu doprowadzić do likwidacji konwencjonalnych przejazdów kolejowych (ze względów bezpieczeństwa). Zmienił się też wygląd pociągów – początkowo przypominały fabryki z kominem, a obecnie bliżej im do filmów SF. W kraju tym nie toleruje się obniżenia prędkości pociągów i po modernizacji danego odcinka średnia prędkość na nim może jedynie wzrosnąć. Co więcej, postój na każdej stacji wynosi 5 minut i nigdy nie ma opóźnień, a z żadnego miasta nie wychodzi więcej niż 50 połączeń. W bazie danych kolei istnieje całe archiwum dotyczące budowy i modernizacji odcinków łączących poszczególne miasta. Zlecono napisanie oprogramowania do analizy tych danych. Twoim zadaniem jest ustalenie, kiedy czas przejazdu pociągiem między zadaną parą miast skrócił się do zadanego poziomu. Wejście: W pierwszej linii wejścia podane są trzy liczby całkowite n, m i z (1<=n<=10000,1<=m<=100000, 1<=z<=10) oznaczające odpowiednio liczbę miast, liczbę budowanych/modernizowanych odcinków oraz liczbę zapytań do programu. W kolejnych m liniach znajdują się chronologiczne informacje dotyczące budowy. W każdej z tych linii podane są: data (format rrrr-mm-dd), następnie znak 'm' lub 'b' w zależności od tego czy chodzi o budowę (połączenie wcześniej nie istniało) czy o modernizację istniejącego już odcinka, następnie para różnych miast m1, m2 (1<=m1, m2<=n) między którymi budowane/modernizowane jest połączenie, a następnie średnią prędkość v (w km/h) na tym odcinku (1<=v<=500) oraz (w przypadku budowy) również długość d (w km) nowobudowanego połączenia (1<=d<=1000). v i d są liczbami całkowitymi i 60*d mod v = 0. W kolejnych z liniach znajdują się zapytania złożone z liczb m1, m2, c (1<=m1, m2<=n, 1<=c<=10000) oznaczających parę miast oraz maks. czas połączenia między nimi (w minutach). Wyjście: W z liniach wyjścia należy odpowiedzieć na zapytania: kiedy po raz pierwszy udało się osiągnąć czas najszybszego połączenia (pośredniego lub bezpośredniego) między danymi miastami nie przekraczający zadanego limitu. Jeśli taki czas nie został dotąd osiągnięty, należy wypisać 'NIE'.

lochy-asd2 icon lochy-asd2

W pewnym państwie rządził dobry i sprawiedliwy król. Uczciwych ludzi nagradzał, natomiast złych karał. Najsurowszą karą było wtrącenie do więzienia. Nie było to jednak zwykłe więzienie, lecz wykute w skałach, podziemne lochy z komorami dla skazanych. Każda cela ma kwadratową podłogę (o powierzchni 1 m2 ) i sufit położony 5 metrów wyżej, jednak nie ma ścian. Więzienie można przedstawić jako prostokąt o rozmiarze n na m, który posiada n*m komór. Więzienie jest ograniczone z 4 stron skałami, w których zostało wykute (dotyczy to cel położonych na brzegach). Co więcej, komory mogą być wykute na różnej głębokości. W związku z brakiem ścian, komory mogą nie być od siebie odseparowane: jeśli dwie sąsiednie cele są wykute na tej samej lub podobnej głębokości (podłoga jednej z komór powyżej podłogi drugiej komory, ale poniżej jej sufitu), to między nimi istnieje fragment wolnej przestrzeni. W przeciwnym razie, gdy głębokości dwóch sąsiednich cel znacznie się różnią, są one od siebie odseparowane skałami, w których zostały wydrążone. W jednej z cel odbywa wyrok pewien słynny rozbójnik. Już w momencie skazania rozmyślał on nad planem ucieczki. Mieli mu w tym pomóc jego kompani, którzy byli na wolności i uciekali skuteczniej od ręki sprawiedliwości. Plan zakładał przekopanie się pod ziemią. Wszystko było dopięte na ostatni guzik... Niestety w dniu planowanej akcji okolicę nawiedziło silne trzęsienie ziemi. Zmodyfikowało ono przepływ wód podziemnych. Rozbójnik zauważył, że ze skalnej podłogi w jego celi zaczyna wypływać woda. On, skrępowany, nie będzie w stanie nawet pływać i może utonąć, gdy poziom wody w jego komorze osiągnie metr! Błyskawicznie ocenił tempo z jakim woda wpływa do lochu. Za ile czasu utonie? Wiadomo, że wszystkie cele (z wyjątkiem leżących na brzegach lochu) mają po osiem sąsiednich cel (cztery po bokach i cztery na skosach). Woda zawsze dąży do wyrównania swego poziomu w komorach, w których występuje (chyba, że ogranicza ją sufit). Wiadomo, że natychmiast spływa ona z danej komory do niżej położonych sąsiednich komór jeśli jej podłoga leży niżej niż sufit sąsiednich cel. Woda może również przelewać się z danej celi do sąsiednich wyżej położonych komór, jeżeli poziom wody w danej komorze wystarczająco się podniesie (powyżej podłogi sąsiednich cel). Gdy sąsiednie komory leżą na takiej samej wysokości, to będą one wypełniać się wodą tak samo szybko. Napisz program, który oceni ile wody musi napłynąć, by rozbójnik utonął. Wejście: W pierwszej linii zestawu danych podane są liczby n i m (1 <=n, m<=200) oznaczające wymiary prostokątnego więzienia. W kolejnych n wierszach podane jest po m liczb całkowitych oddzielonych spacjami i oznaczających głębokość pod ziemią danej komory (a dokładnie położenie jej sufitu). Głębokość przedstawiona w metrach jest liczbą całkowitą należącą do przedziału <1, 1000>. W ostatnim wierszu znajdują się dwie liczby całkowite i oraz j (1 <= i<=n, 1<=j<=m) oznaczające położenie komory rozbójnika (i - numer wiersza, j - numer kolumny). Wyjście: Na wyjściu ma się pojawić liczba całkowita oznaczająca ilość wody (w m3 ), której napłynięcie spowoduje utonięcie rozbójnika.

misja-asd1 icon misja-asd1

Misja Ziemia weszła w konflikt z obcą cywilizacją, która posiada wyjątkowo niebezpieczną broń mogącą zniszczyć naszą planetę. Kapitan kosmicznego statku „Enterprise” ma za zadanie unieszkodliwić wroga. Posiada on rozmieszczenie baz nieprzyjaciela i planuje im przeszkodzić. W tym celu zostanie użyta nowatorska broń nadprzestrzenna, która niszczy wszystkie obiekty położone w zasięgu jej wiązki (jej szerokość kątowa to 90 stopni). Mając do dyspozycji współrzędne kątowe baz nieprzyjaciela należy wyznaczyć optymalny punkt ulokowania broni, by unieszkodliwić jak najwięcej baz za jednym wystrzałem. Dzięki swoim nadzwyczajnym umiejętnościom algorytmicznym możesz uratować ziemię! Wejście: W jedynej linii wejścia podana jest liczba n baz nieprzyjaciela (1<=n<=106 ). W kolejnych n liniach podane są po dwie liczby całkowite oznaczające współrzędne kątowe kolejnych baz (pierwsza liczba to stopnie od 0 do 359, a druga to minuty od 0 do 59) w stosunku do miejsca przetrzymywania broni (mogą się one powtarzać). Możemy założyć, że kąt 0 stopni to północ, 45 stopni to północny-wschód, 90 stopni to wschód itd. Jeden stopień składa się z 60 minut. Wyjście: W pierwszym wierszu wyjścia podana jest maksymalna możliwa liczba zniszczonych baz, jeśli broń będzie ustawiona pod odpowiednim kątem

najemnicy-asd3 icon najemnicy-asd3

Pewien Rzymianin żył sobie w szczęściu i bogactwie. Pewnego dnia stało się nieszczęście, gdyż jego ukochana została uprowadzona przez jego zaciekłych wrogów. Co mu teraz po samym bogactwie, gdy szczęścia nie ma? A jednak pieniądze mogą mu pomóc – ma on zamiar wynająć całą drużynę najemnych żołnierzy, którzy pomogą mu odbić ukochaną. Sprawa nie jest jednak taka prosta, gdyż rzymscy najemnicy się wysoko cenią. Każdy z nich ma swoje wymagania w czasie misji. Zgodnie z powiedzeniem „chleba i igrzysk” żołnierze oczekują prowiantu i rozrywek w zamian za świadczone przez nich usługi. Jeśli którykolwiek z tych warunków nie zostanie spełniony, to najemnik odchodzi w poszukiwaniu lepszego pracodawcy, a nasz Rzymianin dalej wzdycha do ukochanej. Ma on pewien górny próg na sumę prowiantu i sumaryczną rozrywkę, jaką może zapewnić dla drużyny najemnej. Ograniczenia wynikają zarówno z budżetu jak i z logistyki. Mieszcząc się w tych ograniczeniach nasz bohater chce skompletować oddział o możliwie największej sile rażenia. A może Ty pomożesz mu w tym zadaniu? Wejście: W pierwszej linii wejścia podane są liczby P i R (1<=P, R<=1000) będące maksymalnymi ilościami prowiantu i rozrywki, które może zapewnić Rzymianin. W drugiej linii podana jest liczba n (1<=n<=100) najemników. W kolejnych n liniach podane są liczby si, pi, ri(0<=si, pi, ri <=100000) oznaczające odpowiednio: siłę i-go żołnierza, jego wymagania co do prowiantu oraz rozrywek. Wyjście: W pierwszej linii wyjścia ma być podana sumaryczna siła najmocniejszego oddziału leżącego w możliwościach wynajmu Rzymianina. W kolejnej linii podane są numery wynajętych żołnierzy (numeracja od 1

slownik-asd4 icon slownik-asd4

Napisać program do przechowywania wyrazów w słowniku. Program ma umożliwiać szybkie wykonywanie następujących operacji: a) wstawienie nowego słowa (co najwyżej 30 małych liter angielskich) b) usunięcie danego słowa c) wyszukanie w słowniku zadanego słowa d) obliczenie liczby słów o danym prefiksie e) wyświetlenie struktury drzewa wraz z elementami f) wykonanie skryptu poleceń: 1) W x – wstaw x 2) 2) U x – usuń x 3) 3) S x – szukaj x (odpowiedź: TAK/NIE) 4) L x – wypisać, ile słów zaczyna się prefiksem x

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.