제출 #1325660

#제출 시각아이디문제언어결과실행 시간메모리
1325660muhammad-ahmad최솟값 배열 (IZhO11_hyper)C++20
100 / 100
1095 ms33028 KiB
#include <bits/stdc++.h>
using namespace std;

#define endl '\n';

int main(){
	int n, m; cin >> n >> m;
	int a[n + 1][n + 1][n + 1][n + 1] = {};
	for (int i = 1; i <= n; i++){
		for (int j = 1; j <= n; j++){
			for (int k = 1; k <= n; k++){
				for (int l = 1; l <= n; l++) cin >> a[i][j][k][l];
			}
		}
	}	
	
	int mi[n + 1][n + 1][n + 1][n + 1];
	for (int i = 1; i <= n; i++){
		for (int j = 1; j <= n; j++){
			for (int k = 1; k <= n; k++){
				for (int l = 1; l <= n - m + 1; l++){
					int x = 1e9;
					for (int o = 0; o < m; o++){
						x = min(x, a[i][j][k][l + o]);
					}
					mi[i][j][k][l] = x;
				}
			}
		}
	}
	
	int c = 0;
	int ans[n + 1][n + 1][n + 1][n + 1] = {};
	for (int i = 1; i <= n - m + 1; i++){
		for (int j = 1; j <= n - m + 1; j++){
			for (int k = 1; k <= n - m + 1; k++){
				for (int l = 1; l <= n - m + 1; l++){
					ans[i][j][k][l] = 1e9;
					for (int i1 = i; i1 < i + m; i1++){
						for (int j1 = j; j1 < j + m; j1++){
							for (int k1 = k; k1 < k + m; k1++){
								ans[i][j][k][l] = min(ans[i][j][k][l], mi[i1][j1][k1][l]);
								// for (int l1 = l; l1 < l + m; l1++){
									// ans[i][j][k][l] = min(ans[i][j][k][l], a[i1][j1][k1][l1]);
								// }
							}
						}
					}
					cout << ans[i][j][k][l] << ' ';
					c++;
				}	
			}
		}
	}
	
	cout << endl;
}

// -5 -5 -4 -3 -5 -5 -4 -5 -5 -5 -5 -5 -4 -5 -4 -5 
// -5 -5 -4 -3 -5 -5 -4 -5 -5 -5 -5 -5 -4 -5 -4 -5
#Verdict Execution timeMemoryGrader output
Fetching results...