fork(20) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main() {
  5. int n;
  6. cin >> n;
  7. bool arr[n][n];
  8. for(int i = 0; i < n; i++) {
  9. for(int j = 0; j < n; j++) {
  10. cin >> arr[i][j];
  11. }
  12. }
  13. for(int i = 0; i < n; i++) {
  14. for(int j = 0; j < n; j++) {
  15. // если существует ориентированное ребро, соединяющее вершины i и j
  16. if(arr[i][j]) {
  17. for(int z = 0; z < n; z++) {
  18. // если из вершины j в вершину z ведёт ребро, но из i в z - нет, то граф нетранзитивен
  19. if(arr[j][z] && !arr[i][z]) {
  20. cout << "NO";
  21. return 0;
  22. }
  23. }
  24. }
  25. }
  26. }
  27. cout << "YES";
  28. return 0;
  29. }
Success #stdin #stdout 0s 3460KB
stdin
3 
0 0 1
0 1 1
0 0 0
stdout
YES