【未知】P2216 [HAOI2007]理想的正方形

 1 #include<iostream>
 2 using namespace std;
 3 
 4 const int INF = 0x3f3f3f3f;
 5 
 6 int a, b, n;
 7 int g[1010][1010];
 8 int maxn[1010][1010], minn[1010][1010];
 9 
10 int max(int a,int b)
11 
12 {
13     return a>b?a:b;
14 
15 }
16 
17 int min(int a,int b)
18 
19 {
20     return a<b?a:b;
21 
22 }
23 
24 int main()
25 {
26 
27     ios::sync_with_stdio(false);
28 
29     cin >> a >> b >> n;
30     for (int i = 0; i < a; i++)
31         for (int j = 0; j < b; j++)
32         {
33             cin >> g[i][j];
34 
35             maxn[i][j] = minn[i][j] = g[i][j];
36 
37         }
38 
39     for (int k = 2; k <= n; k++)
40         for (int i = 0; i + 1 < a; i++)
41             for (int j = 0; j + 1 < b; j++) 
42             {
43                 maxn[i][j] = max(g[i][j], max(maxn[i + 1][j + 1], max(maxn[i + 1][j], maxn[i][j + 1])));
44                 minn[i][j] = min(g[i][j], min(minn[i + 1][j + 1], min(minn[i + 1][j], minn[i][j + 1])));
45             }
46 
47     int minimum = INF;
48     for (int i = 0; i <= a - n; i++)
49         for (int j = 0; j <= b - n; j++)
50              minimum = min(minimum, maxn[i][j] - minn[i][j]);
51 
52     cout << minimum;
53 }
View Code

 

posted on 2019-10-09 13:22  thjkhdf12  阅读(102)  评论(0)    收藏  举报