HELPPM - Giúp ngài thủ tướng!
Tác giả: khuc_tuan
Ngôn ngữ: C++
#include <stdio.h>
#include <string.h>
int m, n, k;
int a[505][505];
long long d[505];
int main() {
scanf("%d%d%d", &m, &n, &k);
for(int i=0;i<m;++i)
for(int j=0;j<n;++j)
scanf("%d", a[i]+j);
int smin = 1000000000, x, y, u, v;
int inf = 1000000000;
for(int i1=0;i1<m;++i1) {
memset( d, 0, sizeof(d));
for(int i2=i1;i2<m;++i2) {
int mm = 1000000000;
int bd, kt;
long long cur = 0;
for(int j=0, tr=0;j<n;++j) {
d[j] += a[i2][j];
cur += d[j];
while(cur-d[tr]>=k) { cur -= d[tr]; ++tr; }
if(cur>=k && mm>j-tr) {
mm = j - tr;
bd = tr;
kt = j;
}
}
++mm;
if(mm<1000000000 && mm * (i2-i1+1) < smin) {
smin = mm * (i2-i1+1);
x = i1;
u = i2;
y = bd;
v = kt;
}
}
}
if(smin==1000000000) printf("-1\n");
else printf("%d\n%d %d %d %d", smin, x+1, y+1, u+1, v+1);
return 0;
}