#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'; } } |
English