Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | gravity.in, gravity.out | Sursă | Algoritmiada 2016, Runda Finala, Seniori |
Autor | Mihai Calancea | Adăugată de | |
Timp execuţie pe test | 0.5 sec | Limită de memorie | 131072 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Gravity
În această problemă trebuie să simulaţi căderea unor obiecte bidimensionale care urmează reguli asemănătoare (dar nu identice) cu jocul Tetris.
Mai exact, vi se dă o matrice de dimensiuni N x M cu celule de tip . sau #. Numim obiect fiecare componentă maximală 4-conexă de celule de tip #. Toate obiectele cad cu aceeaşi viteză în jos (în direcţia liniei cu numărul N). Dacă un anumit obiect ar ieşi (chiar şi parţial) din matrice prin continuarea mişcării, acesta se opreşte în întregime. Dacă un anumit obiect s-ar intersecta cu un alt obiect (chiar şi parţial) prin continuarea mişcării, acesta se opreşte de-asemenea în întregime. Notaţi că obiectele îşi menţin structura originală pe tot parcursul mişcării, ignorând cu nonşalanţă noţiuni ca "rezistenţa materialelor" sau "stare de echilibru". Puteţi consulta exemplele pentru calificări.
Voi trebuie să afişaţi starea finală a matricei (i.e starea matricei după ce toate obiectele şi-au încetat mişcarea).
Date de intrare
Fişierul de intrare gravity.in va conţine pe prima sa linie dimensiunile matricei, N şi M. Următoarele N linii vor conţine câte un şir de M caractere de tip . sau #, reprezentând starea iniţială a matricei.
Date de ieşire
În fişierul de ieşire gravity.out se vor afla N linii, fiecare conţinând un şir de M caractere, reprezentând starea finală a matricei.
Restricţii
- 1 ≤ N, M ≤ 2500
Exemplu
gravity.in | gravity.out |
---|---|
10 10 .......... ..######.. ..#....#.. ..#.#..#.. ..#..#.#.. ..#....#.. ..######.. .......... ..#....#.. .......#.. | .......... .......... ..######.. ..#....#.. ..#....#.. ..#....#.. ..#.##.#.. ..######.. .......#.. ..#....#.. |
10 10 ...#...... ...#.###.. .......... .#####.... .....#.##. .....#.##. ..#....... ..#..##... ..#...#.#. .......... | .......... .......... .......... ...#...... ...#.###.. .#####.... .....#.... ..#..#.##. ..#..####. ..#...#.#. |