fork download
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4. int main()
  5. {
  6. int n;
  7. cin >> n;
  8. vector<int> G(n*n);
  9. for (int i = 0; i < G.size(); i++)
  10. {
  11. cin >> G[i];
  12. }
  13. int j = 0, c = 0, s = 0;
  14. /*с - счетчик циклов, сигнализирует о завершении текущего цикла сравнения
  15. элементов i строки и j столбца; j - служит индексом для элементов столбца;
  16. s - счетчик столбцов, служит для задания нового начального значения индексу
  17. j при переходе к следующему циклу сравнения элементов i строки и j столбца;*/
  18. bool f = true;
  19. for (int i = 0; i < n*n; i++)//задаем цикл по всему массиву
  20. {
  21. if (G[i] != G[j]) { f=false; break; }
  22. if (c == n - 1)
  23. {
  24. c = 0; s++; j = s;
  25. }
  26. /*если уже сравнили n-1 строку и столбец, обнуляем c, увеличиваем s
  27. и присваиваем его как новое начальное значение для индекса элементов столбца j*/
  28. else
  29. {
  30. j = j + n;//на каждом шаге устанавливаем индекс для элемента столбца
  31. c++;
  32. }
  33. }
  34. for (int i = 0; i < n*n; i = i + n + 1)
  35. /*цикл для определения равенства нулю элементов главной диагонали - индекс
  36. увеличивается на n+1 на каждом шаге*/
  37. {
  38. if (G[i] != 0) { f = false; break; }
  39. }
  40. if (f) cout << "YES";
  41. else cout << "NO";
  42. return 0;
  43. }
Success #stdin #stdout 0s 3464KB
stdin
3
0 1 0
1 1 1
0 1 0
stdout
NO