Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
AL_31_03 - Dziwny wirus... |
Właśnie udało ci się zdobyć pracę w pewnej firmie na stanowisku opiekuna bazy danych użytkowników. Gdy przyszedłeś pierwszego dnia do pracy, dowiedziałeś się, że w nocy do bazy danych wkradł się wirus. Jego zadanie, o dziwo, nie polegało na usuwaniu informacji, lecz mieszaniu ich w taki sposób, aby były trudne do odczytania przez system.
Początkowo dane były zapisane w taki sposób, że każdy wiersz rozpoczynał się od pierwszej litery imienia użytkownika, po której umieszczona była kropka. Następnie znajdowało się nazwisko oraz wiek. Na ostatniej pozycji umieszczony był numer PESEL. Wirus pomieszał kolejność danych w wierszach, usunął odstępy między nimi, a następnie zmienił kolejność wierszy.
Twoim zadaniem jest napisanie programu, który naprawi szkody wyrządzone przez wirusa.
UWAGA! Z racji tego, że czas upływa, przyjmijmy, że data podczas wykonywania zadania to 7 stycznia 2017 roku.
Wejście
Wejście składa się z nieokreślonej liczby wierszy zawierających dane użytkowników po wymieszaniu ich przez wirusa. Należy przyjąć, że długość każdego z nazwisk nie przekracza 10 znaków, zaś wiek zawiera się w przedziale [18;39]. Gwarantujemy również, że numery PESEL użytkowników są poprawne i nie powtarzają się.
Wyjście
Na wyjściu należy wypisać dane użytkowników posortowane kolejno wg. następujących kryteriów:
- niemalejąco po nazwisku
- niemalejąco po imieniu
- nierosnąco po numerze PESEL
Dane w obrębie każdego wiersza powinny być ułożone zgodnie z ich stanem początkowym.
Przykład
Wejście:
J.18Kowalski98030103109 Kowalska19J.98010101105
Wyjście:
J. Kowalska 19 98010101105 J. Kowalski 18 98030103109
Dodane przez: | |
Data dodania: | 2017-01-06 |
Limit czasu wykonania programu: | 1s |
Limit długości kodu źródłowego | 50000B |
Limit pamięci: | 1536MB |
Cluster: | Cube (Intel G860) |
Języki programowania: | All except: ASM64 GOSU |
Pochodzenie: | ALGOLIGA |
ukryj komentarze
2017-01-07 18:59:25 Maciej Boniecki
Tak |
|
2017-01-07 18:51:15 Grzegorz Spryszyñski
Wiek jest liczony co do dnia? Urodzony 7-ego stycznia 1999 będzie miał 18 lat? A urodzony 8-ego stycznia - 17 lat? |
|
2017-01-07 17:09:42 Maciej Boniecki
1) Tak 2) Tak 3) Tak 4) Nie 5) Tak 6) Wielka |
|
2017-01-07 17:02:13 Kamil Wajda
Prosiłbym o odpowiedzi na poniższe pytania: 1. Czy nazwisko jest zawsze niepuste? 2. Czy prawdą jest, że jedyne znaki jakie mogą się pojawić w danym wierszu wejścia to: a) małe litery alfabetu angielskiego b) duże litery alfabetu angielskiego c) cyfry d) dokładnie jedna kropka? 3. Czy nazwisko składa się wyłącznie z jednej wielkiej litery i pewnego (być może pustego) ciągu małych liter? Jeśli nie, to jakie znaki są dopuszczalne w nazwisku? 4. Czy w nazwisku mogą występować polskie znaki? 5. Czy przez sortowanie rozumiemy sortowanie w porządku leksykograficznym (dla każdego z pól)? 6. Mała czy wielka litera ma pierwszeństwo podczas sortowania niemalejącego? |
|
2017-01-07 15:08:12 Maciej Boniecki
Doprecyzowując, wiek i PESEL mogą się znajdować obok siebie i wtedy tworzą 13 cyfrowy ciąg. Nie ma jednak takiej możliwości, aby wiek został wstawiony w środku numeru PESEL dzieląc go na dwie części. |
|
2017-01-07 15:01:56
Tak |
|
2017-01-07 14:55:48 Sebastian Toton
Czy możliwe jest, aby wiek zawierał się w peselu tworząc 13 cyfrowy ciąg? |
|
2017-01-07 14:40:57 Maciej Boniecki
Tak |
|
2017-01-07 14:34:21 Kamil Wajda
Czy po przestawieniu kolejności danych w wierszu przez wirusa kropka w dalszym ciągu znajduje się po 1szej literze imienia? |