Submission #17874

#TimeUsernameProblemLanguageResultExecution timeMemory
17874AdilkhanHyper-minimum (IZhO11_hyper)C++98
80 / 100
2000 ms31720 KiB
#include <bits/stdc++.h> #define pb push_back #define endl "\n" #define mp make_pair #define fi first #define se second #define all(x) x.begin(), x.end() #define fname "" #define sz(x) (int)(x.size()) typedef long long ll; using namespace std; const ll N = (ll)(5e5) + 322; const ll INF = (ll)(1e9); const ll mod = (ll)(1e9) + 7; const double eps = 1e-9; int n, m, sz, a[40][40][40][40], sm, d[40][40][40][40], pre[40][40][40][40]; inline int getmn(int I, int J, int K, int Q) { int res = INF; for (int i = I; i <= I + m - 1; ++i) { for (int j = J; j <= J + m - 1; ++j) { for (int k = K; k <= K + m - 1; ++k) { for (int q = Q; q <= Q + m - 1; ++q) { res = min(a[i][j][k][q], res); if (res == pre[i][j][k][q]) break; } } } } return res; } int main () { //ios_base :: sync_with_stdio(false); cin.tie(0); //freopen(fname".in", "r", stdin); //freopen(fname".out", "w", stdout); cin >> n >> m; for (int i = 1; i <= n; ++i) { for (int j = 1; j <= n; ++j) { for (int k = 1; k <= n; ++k) { for (int q = 1; q <= n; ++q) { cin >> a[i][j][k][q]; } pre[i][j][k][n + 1] = INF; for (int q = n; q >= 1; --q) { pre[i][j][k][q] = min(pre[i][j][k][q + 1], a[i][j][k][q]); } } } } sm = n - m + 1; for (int i = 1; i <= sm; ++i) { for (int j = 1; j <= sm; ++j) { for (int k = 1; k <= sm; ++k) { for (int q = 1; q <= sm; ++q) { cout << getmn(i, j, k, q) << ' '; } } } } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...