#include <bits/stdc++.h> using namespace std; int n,m; string tab[2000+7]; void func(char dir, int pos){ if(dir=='R'){ for(int x=0;x<m;x++) tab[pos][x]='0'; } else{ for(int x=0;x<n;x++) tab[x][pos]='0'; } } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> m; for(int x=0;x<n;x++) cin >> tab[x]; vector<pair<char,pair<int, char>>> v; for(int c=0; c<n+m; c++){ char color = '0'; for(int x=0;x<n;x++){ color = '0'; int y=0; while(y<m){ if(color=='0'){ if(tab[x][y]!='0') color=tab[x][y]; } else{ if(tab[x][y]!='0' && color!=tab[x][y]) y=m+1; } y++; } if(y==m && color!='0'){ v.push_back(make_pair('R',make_pair(x+1, color))); //x+1 bo numerowanie od 1 func('R',x); } } for(int x=0;x<m;x++){ color = '0'; int y=0; while(y<n){ if(color=='0'){ if(tab[y][x]!='0') color=tab[y][x]; } else{ if(tab[x][y]!='0' && color!=tab[y][x]) y=n+1; } y++; } if(y==n && color!='0'){ v.push_back(make_pair('K',make_pair(x+1, color))); func('K',x); } } } cout << v.size() << '\n'; for(int x=1;x<=v.size();x++){ cout << v[v.size()-x].first << ' ' << v[v.size()-x].second.first << ' ' << v[v.size()-x].second.second << '\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 | #include <bits/stdc++.h> using namespace std; int n,m; string tab[2000+7]; void func(char dir, int pos){ if(dir=='R'){ for(int x=0;x<m;x++) tab[pos][x]='0'; } else{ for(int x=0;x<n;x++) tab[x][pos]='0'; } } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> m; for(int x=0;x<n;x++) cin >> tab[x]; vector<pair<char,pair<int, char>>> v; for(int c=0; c<n+m; c++){ char color = '0'; for(int x=0;x<n;x++){ color = '0'; int y=0; while(y<m){ if(color=='0'){ if(tab[x][y]!='0') color=tab[x][y]; } else{ if(tab[x][y]!='0' && color!=tab[x][y]) y=m+1; } y++; } if(y==m && color!='0'){ v.push_back(make_pair('R',make_pair(x+1, color))); //x+1 bo numerowanie od 1 func('R',x); } } for(int x=0;x<m;x++){ color = '0'; int y=0; while(y<n){ if(color=='0'){ if(tab[y][x]!='0') color=tab[y][x]; } else{ if(tab[x][y]!='0' && color!=tab[y][x]) y=n+1; } y++; } if(y==n && color!='0'){ v.push_back(make_pair('K',make_pair(x+1, color))); func('K',x); } } } cout << v.size() << '\n'; for(int x=1;x<=v.size();x++){ cout << v[v.size()-x].first << ' ' << v[v.size()-x].second.first << ' ' << v[v.size()-x].second.second << '\n'; } } |