fork download
  1. #include <cstdio>
  2. int n;
  3. int matrix[1001][1001] = {0};
  4. int degree[10001] = {0};
  5. void dfs(int v)
  6. {
  7. for(int i=1; i<=n; i++)
  8. {
  9. if(matrix[v][i] != 0)
  10. {
  11. matrix[i][v]--;
  12. matrix[v][i]--;
  13. dfs(i);
  14. }
  15. }
  16. printf("%d ", v);
  17. }
  18. int main()
  19. {
  20. scanf("%d", &n);
  21. for(int i=1; i<=n; i++)
  22. {
  23. for(int j=1; j<=n; j++)
  24. {
  25. scanf("%d", &matrix[i][j]); //[y][x]
  26. degree[i] += matrix[i][j];
  27. }
  28. }
  29. int start_v = 0;
  30. for(int i=1; i<=n; i++)
  31. {
  32. if(degree[i] != 0) start_v = i;
  33. if(degree[i] % 2 == 1)
  34. {
  35. printf("-1");
  36. return 0;
  37. }
  38. }
  39. dfs(start_v);
  40. printf("\n");
  41. return 0;
  42. }
Success #stdin #stdout 0s 5532KB
stdin
6
0 1 1 0 0 0
1 0 1 0 0 0
1 1 0 0 0 0
0 0 0 0 1 1
0 0 0 1 0 1
0 0 0 1 1 0
stdout
6 5 4 6