|
|
|
|
#include <bits/stdc++.h>
|
|
|
|
|
|
|
|
|
|
using namespace std;
|
|
|
|
|
|
|
|
|
|
int main() {
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ά<EFBFBD><CEAC><EFBFBD><EFBFBD>
|
|
|
|
|
int n, m;
|
|
|
|
|
cin >> n >> m;
|
|
|
|
|
vector<vector<int>> twoDimensionVec;
|
|
|
|
|
for (int i = 0; i < n; i++) {
|
|
|
|
|
vector<int> oneDimensionVec;
|
|
|
|
|
for (int j = 0; j < m; j++) {
|
|
|
|
|
int c;
|
|
|
|
|
cin >> c;
|
|
|
|
|
oneDimensionVec.push_back(c);
|
|
|
|
|
}
|
|
|
|
|
twoDimensionVec.push_back(oneDimensionVec);
|
|
|
|
|
}
|
|
|
|
|
//<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
vector<pair<pair<int, int>, pair<int, int>>> vec;
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>б<EFBFBD><D0B1><EFBFBD>
|
|
|
|
|
for (int i = 0; i < n; i++) {
|
|
|
|
|
//<2F>о<EFBFBD>Ҫ<EFBFBD><D2AA>˫ָ<CBAB><D6B8>
|
|
|
|
|
for (int j = 0; j < m; j++) {
|
|
|
|
|
//<2F><>j<EFBFBD><6A>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȳ<EFBFBD><C8B3><EFBFBD>
|
|
|
|
|
int p = j + 1;
|
|
|
|
|
while (p < m && twoDimensionVec[i][p] == twoDimensionVec[i][j]) {
|
|
|
|
|
p++;
|
|
|
|
|
}
|
|
|
|
|
if (p - j >= 3) vec.push_back(make_pair(make_pair(i, j), make_pair(i, p - 1)));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD>б<EFBFBD><D0B1><EFBFBD>
|
|
|
|
|
for (int j = 0; j < m; j++) {
|
|
|
|
|
for (int i = 0; i < n; i++) {
|
|
|
|
|
//<2F><>i<EFBFBD><69>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȳ<EFBFBD><C8B3><EFBFBD>
|
|
|
|
|
int p = i + 1;
|
|
|
|
|
while (p < n && twoDimensionVec[p][j] == twoDimensionVec[i][j]) {
|
|
|
|
|
p++;
|
|
|
|
|
}
|
|
|
|
|
if (p - i >= 3) vec.push_back(make_pair(make_pair(i, j), make_pair(p - 1, j)));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>vec<65><63><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
for (int i = 0; i < vec.size(); i++) {
|
|
|
|
|
pair<pair<int, int>, pair<int, int>> a = vec[i];
|
|
|
|
|
int x1 = a.first.first;
|
|
|
|
|
int y1 = a.first.second;
|
|
|
|
|
int x2 = a.second.first;
|
|
|
|
|
int y2 = a.second.second;
|
|
|
|
|
for (int p = x1; p <= x2; p++) {
|
|
|
|
|
for (int q = y1; q <= y2; q++) {
|
|
|
|
|
twoDimensionVec[p][q] = 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
for (int i = 0; i < n; i++) {
|
|
|
|
|
for (int j = 0; j < m; j++) {
|
|
|
|
|
cout << twoDimensionVec[i][j] << " ";
|
|
|
|
|
}
|
|
|
|
|
cout << endl;
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
}
|