Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #define NMAX 501
- using namespace std;
- int mat[NMAX + 1][NMAX + 1], sum[NMAX + 1][NMAX + 1];
- int suma_sub(int i, int j, int iend, int jend){
- return sum[iend][jend] - sum[i-1][jend] - sum[iend][j - 1] + sum[i - 1][j - 1];
- }
- ifstream fin ("cruce.in");
- ofstream fout ("cruce.out");
- int main(){
- int n, k, l1, c1, l2, c2, maxsum;
- fin >> n >> k;
- for (l1 = 1; l1 <= n; l1++)
- for (c1 = 1; c1 <= n; c1++){
- fin >> mat[l1][c1];
- }
- for (l1 = 1; l1 <= n; l1++)
- for (c1 = 1; c1 <= n; c1++){
- sum[l1][c1] = sum[l1 - 1][c1] + sum[l1][c1 - 1] - sum[l1 - 1][c1 - 1] + mat[l1][c1];
- }
- maxsum = -1500000005;
- int i,j;
- for (l1 = 1; l1 <= n-k+1; l1 ++)
- for (c1 = 1; c1 <= n-k+1; c1 ++){
- l2 = l1 + k - 1;
- c2 = c1 + k - 1;
- int val = suma_sub(l1, 1, l2, n) + suma_sub(1, c1, n, c2) - suma_sub(l1 , c1, l2, c2);
- if (maxsum < val){
- maxsum = val;
- i = l1;
- j = c1;
- }
- }
- fout << maxsum << " " << i << " " << j;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement