#include <iostream> #include <algorithm> using namespace std; char plansza[500][500]; int height, width; void doGory(){ int wolna = 0; for(int j = 0; j < width; j++){ wolna = 0; for(int i = 0; i < height; i++){ if(plansza[i][j] != '.'){ swap(plansza[i][j], plansza[wolna][j]); wolna++; } } } } void doDolu(){ int wolna = height; for(int j = width - 1; j >= 0; j--){ wolna = height - 1; for(int i = height - 1; i >= 0; i--){ if(plansza[i][j] != '.'){ swap(plansza[i][j], plansza[wolna][j]); wolna--; } } } } void doLewej(){ int wolna = 0; for(int i = 0; i < height; i++){ wolna = 0; for(int j = 0; j < width; j++){ if(plansza[i][j] != '.'){ swap(plansza[i][j], plansza[i][wolna]); wolna++; } } } } void doPrawej(){ int wolna = width - 1; for(int i = height - 1; i >= 0; i--){ wolna = width - 1; for(int j = width - 1; j >= 0; j--){ if(plansza[i][j] != '.'){ swap(plansza[i][j], plansza[i][wolna]); wolna--; } } } } int main(){ cin >> height; cin >> width; for(int i = 0; i < height; i++){ for(int j = 0; j < width; j++){ cin >> plansza[i][j]; } } int liczba_zmian; cin >> liczba_zmian; char jakieZmiany[liczba_zmian]; for(int i = 0; i < liczba_zmian; i++){ cin >> jakieZmiany[i]; } for(int i = 0; i < liczba_zmian; i++){ if(jakieZmiany[i] == 'G') doGory(); if(jakieZmiany[i] == 'D') doDolu(); if(jakieZmiany[i] == 'L') doLewej(); if(jakieZmiany[i] == 'P') doPrawej(); } for(int i = 0; i < height;i++){ for(int j = 0; j < width; j++){ cout << plansza[i][j]; } cout << endl; } return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | #include <iostream> #include <algorithm> using namespace std; char plansza[500][500]; int height, width; void doGory(){ int wolna = 0; for(int j = 0; j < width; j++){ wolna = 0; for(int i = 0; i < height; i++){ if(plansza[i][j] != '.'){ swap(plansza[i][j], plansza[wolna][j]); wolna++; } } } } void doDolu(){ int wolna = height; for(int j = width - 1; j >= 0; j--){ wolna = height - 1; for(int i = height - 1; i >= 0; i--){ if(plansza[i][j] != '.'){ swap(plansza[i][j], plansza[wolna][j]); wolna--; } } } } void doLewej(){ int wolna = 0; for(int i = 0; i < height; i++){ wolna = 0; for(int j = 0; j < width; j++){ if(plansza[i][j] != '.'){ swap(plansza[i][j], plansza[i][wolna]); wolna++; } } } } void doPrawej(){ int wolna = width - 1; for(int i = height - 1; i >= 0; i--){ wolna = width - 1; for(int j = width - 1; j >= 0; j--){ if(plansza[i][j] != '.'){ swap(plansza[i][j], plansza[i][wolna]); wolna--; } } } } int main(){ cin >> height; cin >> width; for(int i = 0; i < height; i++){ for(int j = 0; j < width; j++){ cin >> plansza[i][j]; } } int liczba_zmian; cin >> liczba_zmian; char jakieZmiany[liczba_zmian]; for(int i = 0; i < liczba_zmian; i++){ cin >> jakieZmiany[i]; } for(int i = 0; i < liczba_zmian; i++){ if(jakieZmiany[i] == 'G') doGory(); if(jakieZmiany[i] == 'D') doDolu(); if(jakieZmiany[i] == 'L') doLewej(); if(jakieZmiany[i] == 'P') doPrawej(); } for(int i = 0; i < height;i++){ for(int j = 0; j < width; j++){ cout << plansza[i][j]; } cout << endl; } return 0; } |