Advertisement
Guest User

Untitled

a guest
May 26th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. bool recur(int* ans, int i, int v, int n, bool** x){
  5. bool flag = true;
  6. if(i==n){
  7. for(int k = 0;k<n;k++){
  8. cout<<(ans[k]+1)<<" ";
  9. }
  10. cout<<endl;
  11. return true;
  12. }
  13.  
  14. for(int j = 0;j<n;j++){
  15. for(int k = 0;k<n;k++)
  16. if(ans[k]==j)
  17. flag = false;
  18. if((x[v][j]||!x[j][v])&&flag){
  19. ans[i]=j;
  20. i++;
  21. recur(ans, i, j, n, x);
  22. }
  23. flag = true;
  24. }
  25. return false;
  26. }
  27.  
  28.  
  29. int main() {
  30. int n,m;
  31. cin>>n>>m;
  32.  
  33. bool** x = new bool*[n];
  34. for(int i=0;i<n;i++)
  35. x[i]=new bool[n];
  36.  
  37. for(int i = 0;i<n;i++)
  38. for(int j=0;j<n;j++)
  39. x[i][j]=false;
  40.  
  41. for(int i =0;i<m;i++){
  42. int a,b;
  43. cin>>a>>b;
  44. x[a-1][b-1]=true;
  45. }
  46. bool flag = false;
  47. for(int k = 0;k<n;k++){
  48. int* ans = new int[n];
  49. ans[0]=k;
  50. flag = recur(ans, 1, k, n, x);
  51. }
  52. if(!flag)
  53. cout<<"no";
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement