# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1175795 | posn07 | Quality Of Living (IOI10_quality) | C++20 | 0 ms | 0 KiB |
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int rectangle(int R, int C, int H, int W, vector<vector<int>>& Q) {
int n = H * W;
int median_index = n / 2;
int best_median = INT_MAX;
for (int i = 0; i <= R - H; i++) {
for (int j = 0; j <= C - W; j++) {
// Collect the elements in the HxW subgrid
vector<int> subgrid_elements;
for (int di = 0; di < H; di++) {
for (int dj = 0; dj < W; dj++) {
subgrid_elements.push_back(Q[i + di][j + dj]);
}
}
sort(subgrid_elements.begin(), subgrid_elements.end());
int current_median = subgrid_elements[median_index];
best_median = min(best_median, current_median);
}
}
return best_median;
}
int main() {
int R, C, H, W;
cin >> R >> C >> H >> W;
vector<vector<int>> Q(R, vector<int>(C));
for (int i = 0; i < R; i++) {
for (int j = 0; j < C; j++) {
cin >> Q[i][j];
}
}
cout << rectangle(R, C, H, W, Q) << endl;
return 0;
}