Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2020
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. ifstream in("cruce.in");
  4. ofstream out("cruce.out");
  5. int a[501][501], n = 1, k = 1, linmax = -1, colmax = -1, l = 1, c = 1, vmax = -1;
  6. int main()
  7. {
  8. in >> n >> k;
  9. //acum citesc matricea
  10. for (int i = 1; i <= n; ++i)
  11. for (int j = 1; j <= n; ++j)
  12. {
  13. in >> a[i][j];
  14. }
  15.  
  16. //fac suma partiala in matrice
  17. for (int i = 1; i <= n; ++i)
  18. for (int j = 1; j <= n; ++j)
  19. {
  20. a[i][j] += a[i - 1][j] + a[i][j - 1] - a[i - 1][j - 1];
  21. }
  22.  
  23. //vad care e "coloana maxima" adica practic K coloane alaturate cu val max
  24. for (int i = n; i >= k; --i)
  25. if (a[n][i] - a[n][i - k] >= colmax)
  26. {
  27. colmax = a[n][i] - a[n][i - k];
  28. c = i - k + 1;
  29. }
  30.  
  31. //asta e K linii alaturate cu val max dar fara partea comuna cu colana maxima
  32. for (int i = n; i >= k; --i)
  33. 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)
  34. {
  35. 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];
  36. l = i - k + 1;
  37. }
  38.  
  39. vmax = linmax + colmax;
  40. out << vmax << " " << l << " " << c;
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement