#include<bits/stdc++.h> using namespace std; int main(){ int wymiarx; int wymiary; cin >> wymiary; cin >> wymiarx; vector <char> rtyp; vector <int> rnum; vector <char> rcol; char tablica[wymiary][wymiarx]; bool udalosie; bool typ; int wrzedy[wymiary]; int wkolomny[wymiarx]; int i; int i2; int wykreslone = 0; for(i = 0; i < wymiary; i++){ udalosie = true; wrzedy[i] = 1; for(i2 = 0; i2 < wymiarx; i2++){ wkolomny[i2] = 1; cin >> tablica[i][i2]; if(tablica[i][i2] != tablica[i][0]){ udalosie = false; } } if(udalosie and wykreslone < wymiarx + wymiary){ rtyp.push_back('R'); rnum.push_back(i); rcol.push_back(tablica[i][0]); wrzedy[i] = 0; wykreslone ++; } } while(wykreslone < wymiarx + wymiary){ udalosie = true; for(i2 = 0; i2 < wymiarx; i2++){ if(wkolomny[i2]){ udalosie = true; for(int i = 0; i < wymiary; i++){ if(wrzedy[i]){ if(tablica[i][i2] != tablica[0][i2]){ udalosie = false; break; }} }} if(udalosie){ rtyp.push_back('K'); rnum.push_back(i2); rcol.push_back(tablica[0][i2]); wkolomny[i2] = 0; wykreslone ++; } if(wykreslone >= wymiarx + wymiary){ break; } } if(wykreslone >= wymiarx + wymiary){ break; } udalosie = true; for(i = 0; i < wymiary; i++){ udalosie = true; if(wrzedy[i]){ for(int i2 = 0; i2 < wymiarx; i2++){ if(wkolomny[i2]){ if(tablica[i][i2] != tablica[i][0]){ udalosie = false; break; }} }} if(udalosie){ rtyp.push_back('R'); rnum.push_back(i); rcol.push_back(tablica[i][0]); wrzedy[i] = 0; wykreslone ++; } if(wykreslone >= wymiarx + wymiary){ break; } } } cout << rtyp.size() << '\n'; for(int x = rtyp.size() - 1; x >= 0; x--){ cout << rtyp[x] << ' ' << rnum[x] + 1 << ' ' << rcol[x] << '\n'; } }
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 92 93 | #include<bits/stdc++.h> using namespace std; int main(){ int wymiarx; int wymiary; cin >> wymiary; cin >> wymiarx; vector <char> rtyp; vector <int> rnum; vector <char> rcol; char tablica[wymiary][wymiarx]; bool udalosie; bool typ; int wrzedy[wymiary]; int wkolomny[wymiarx]; int i; int i2; int wykreslone = 0; for(i = 0; i < wymiary; i++){ udalosie = true; wrzedy[i] = 1; for(i2 = 0; i2 < wymiarx; i2++){ wkolomny[i2] = 1; cin >> tablica[i][i2]; if(tablica[i][i2] != tablica[i][0]){ udalosie = false; } } if(udalosie and wykreslone < wymiarx + wymiary){ rtyp.push_back('R'); rnum.push_back(i); rcol.push_back(tablica[i][0]); wrzedy[i] = 0; wykreslone ++; } } while(wykreslone < wymiarx + wymiary){ udalosie = true; for(i2 = 0; i2 < wymiarx; i2++){ if(wkolomny[i2]){ udalosie = true; for(int i = 0; i < wymiary; i++){ if(wrzedy[i]){ if(tablica[i][i2] != tablica[0][i2]){ udalosie = false; break; }} }} if(udalosie){ rtyp.push_back('K'); rnum.push_back(i2); rcol.push_back(tablica[0][i2]); wkolomny[i2] = 0; wykreslone ++; } if(wykreslone >= wymiarx + wymiary){ break; } } if(wykreslone >= wymiarx + wymiary){ break; } udalosie = true; for(i = 0; i < wymiary; i++){ udalosie = true; if(wrzedy[i]){ for(int i2 = 0; i2 < wymiarx; i2++){ if(wkolomny[i2]){ if(tablica[i][i2] != tablica[i][0]){ udalosie = false; break; }} }} if(udalosie){ rtyp.push_back('R'); rnum.push_back(i); rcol.push_back(tablica[i][0]); wrzedy[i] = 0; wykreslone ++; } if(wykreslone >= wymiarx + wymiary){ break; } } } cout << rtyp.size() << '\n'; for(int x = rtyp.size() - 1; x >= 0; x--){ cout << rtyp[x] << ' ' << rnum[x] + 1 << ' ' << rcol[x] << '\n'; } } |