fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. const int MAX_SIZE = 20;
  5. const int MAX_VAL = 100;
  6.  
  7. int main() {
  8. int n, mt[MAX_SIZE + 1][MAX_SIZE + 1];
  9. cin >> n;
  10. int genLineSum = 0, genColSum = 0, genDiag1 = 0, genDiag2 = 0 , bigNegNo = 0, bigPozNo = 0;
  11. for (int i = 1; i <= n; ++i) {
  12. for (int j = 1; j <= n; ++j) {
  13. cin >> mt[i][j];
  14. if (mt[i][j] >= -MAX_VAL && mt[i][j] < 0) {
  15. bigNegNo = mt[i][j];
  16. }
  17. if (mt[i][j] <= MAX_VAL && mt[i][j] >= 0) {
  18. bigPozNo = mt[i][j];
  19. }
  20. }
  21. }
  22. int flag = 1;
  23. for (int i = 1; i <= n; ++i) {
  24. int sumLine = 0, sumCol = 0, diag1 = 0, diag2 = 0;
  25. for (int j = 1; j <= n; ++j) {
  26. sumLine += mt[j][i];
  27. sumCol += mt[i][j];
  28.  
  29. }
  30. diag1 += mt[i][i];
  31. diag2 += mt[i][n - i + 1];
  32.  
  33. if (sumLine == sumCol ) {
  34. genLineSum = sumLine;
  35. genColSum = sumCol;
  36. }
  37.  
  38. if (genLineSum != sumLine || genColSum != sumCol ) {
  39. cout << sumLine << " " << sumCol << " ";
  40. flag = 0;
  41. }
  42. genDiag1 += diag1;
  43. genDiag2 += diag2;
  44. }
  45.  
  46. if ((flag == 1 && genDiag1 == genLineSum && genDiag2 == genLineSum)) {
  47. cout <<"Pamantul este sacru\n";
  48. if (bigNegNo < 0) {
  49. cout <<bigNegNo;
  50. } else {
  51. cout <<"NU EXISTA";
  52. }
  53. }else if ((flag == 0 && (genDiag1 != genLineSum || genDiag2 != genLineSum))) {
  54. cout <<"Pamantul nu este sacru\n";
  55. if (bigNegNo >= 0) {
  56. cout <<bigPozNo;
  57. } else {
  58. cout <<"NU EXISTA";
  59. }
  60. }
  61. return 0;
  62. }
Success #stdin #stdout 0s 5308KB
stdin
3
-1 -2 -1
-1 -1 -1 
-1 -1 -5
stdout
-3 -4 -4 -3 Pamantul nu este sacru
NU EXISTA