You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

68 lines
1.9 KiB

2 years ago
#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;
}