Submission #337650

#TimeUsernameProblemLanguageResultExecution timeMemory
337650amunduzbaevHyper-minimum (IZhO11_hyper)C++14
100 / 100
371 ms103148 KiB
/** made by amunduzbaev **/
#include <bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
#define mp make_pair
#define ub upper_bound
#define lb lower_bound
#define ll long long 
#define ld long double 
#define pii pair<int, int>
#define pll pair<ll, ll>
#define sz(x) (int)x.size()
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(),x.rend()
#define fastios ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define vll vector<ll>
#define vii vector<int>
const int N = 40;
const int mod = 1e9+7;
const ll inf = 1e18;
const ld Pi = acos(-1);
ll n, m, k, ans;
ll a[5][N][N][N][N];
void solve(){
	fastios
	cin>>n>>m;
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			for(int k=0;k<n;k++){
				for(int l=0;l<n;l++){
					cin>>a[4][i][j][k][l];
				}
			}
		}
	}
	
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			for(int k=0;k<n;k++){
				for(int l=0;l<n-m+1;l++){
					a[3][i][j][k][l] = inf;
					for(int q=0;q<m;q++) a[3][i][j][k][l] = min(a[3][i][j][k][l], a[4][i][j][k][l+q]);
				}
			}
		}
	}
	
	
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			for(int k=0;k<n-m+1;k++){
				for(int l=0;l<n-m+1;l++){
					a[2][i][j][k][l] = inf;
					for(int q=0;q<m;q++) a[2][i][j][k][l] = min(a[2][i][j][k][l], a[3][i][j][k+q][l]);
				}
			}
		}
	}
	
	
	for(int i=0;i<n;i++){
		for(int j=0;j<n-m+1;j++){
			for(int k=0;k<n-m+1;k++){
				for(int l=0;l<n-m+1;l++){
					a[1][i][j][k][l] = inf;
					for(int q=0;q<m;q++) a[1][i][j][k][l] = min(a[1][i][j][k][l], a[2][i][j+q][k][l]);
				}
			}
		}
	}
	
	
	for(int i=0;i<n-m+1;i++){
		for(int j=0;j<n-m+1;j++){
			for(int k=0;k<n-m+1;k++){
				for(int l=0;l<n-m+1;l++){
					a[0][i][j][k][l] = inf;
					for(int q=0;q<m;q++) a[0][i][j][k][l] = min(a[0][i][j][k][l], a[1][i+q][j][k][l]);
				}
			}
		}
	}
	
	for(int i=0;i<n-m+1;i++){
		for(int j=0;j<n-m+1;j++){
			for(int k=0;k<n-m+1;k++){
				for(int l=0;l<n-m+1;l++){
					cout<<a[0][i][j][k][l]<<" ";
				}//cout<<'\n';
			}
		}
	}
	
	
	
	return;
}


int main(){
	fastios
	int t = 1;
	if(t) solve();
	else {
		cin>>t;
		while (t--) solve();
	}
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...