답안 #17874

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
17874 2016-01-13T03:15:17 Z Adilkhan 최솟값 배열 (IZhO11_hyper) C++
80 / 100
2000 ms 31720 KB
#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;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 31720 KB Output is correct
2 Correct 0 ms 31720 KB Output is correct
3 Correct 4 ms 31720 KB Output is correct
4 Correct 8 ms 31720 KB Output is correct
5 Correct 0 ms 31720 KB Output is correct
6 Correct 51 ms 31720 KB Output is correct
7 Correct 52 ms 31720 KB Output is correct
8 Correct 103 ms 31720 KB Output is correct
9 Correct 110 ms 31720 KB Output is correct
10 Correct 325 ms 31720 KB Output is correct
11 Correct 1743 ms 31720 KB Output is correct
12 Execution timed out 2000 ms 31720 KB Program timed out
13 Correct 348 ms 31720 KB Output is correct
14 Correct 844 ms 31720 KB Output is correct
15 Correct 869 ms 31720 KB Output is correct
16 Execution timed out 2000 ms 31720 KB Program timed out
17 Execution timed out 2000 ms 31720 KB Program timed out
18 Correct 1227 ms 31720 KB Output is correct
19 Execution timed out 2000 ms 31720 KB Program timed out
20 Correct 1000 ms 31720 KB Output is correct