Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- ifstream in("cruce.in");
- ofstream out("cruce.out");
- int a[501][501], n = 1, k = 1, linmax = -1, colmax = -1, l = 1, c = 1, vmax = -1;
- int main()
- {
- in >> n >> k;
- //acum citesc matricea
- for (int i = 1; i <= n; ++i)
- for (int j = 1; j <= n; ++j)
- {
- in >> a[i][j];
- }
- //fac suma partiala in matrice
- for (int i = 1; i <= n; ++i)
- for (int j = 1; j <= n; ++j)
- {
- a[i][j] += a[i - 1][j] + a[i][j - 1] - a[i - 1][j - 1];
- }
- //vad care e "coloana maxima" adica practic K coloane alaturate cu val max
- for (int i = n; i >= k; --i)
- if (a[n][i] - a[n][i - k] >= colmax)
- {
- colmax = a[n][i] - a[n][i - k];
- c = i - k + 1;
- }
- //asta e K linii alaturate cu val max dar fara partea comuna cu colana maxima
- for (int i = n; i >= k; --i)
- if (a[i][n] - a[i - k][n] - a[i][c + k - 1] + a[i][c - 1] + a[i - k][c + k - 1] - a[i - k][c - 1] >= linmax)
- {
- linmax = a[i][n] - a[i - k][n] - a[i][c + k - 1] + a[i][c - 1] + a[i - k][c + k - 1] - a[i - k][c - 1];
- l = i - k + 1;
- }
- vmax = linmax + colmax;
- out << vmax << " " << l << " " << c;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement