Advertisement
Guest User

Untitled

a guest
Jan 24th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define N 22
  3.  
  4. using namespace std;
  5.  
  6. ifstream fin ("izvor.in");
  7. ofstream fout ("izvor.out");
  8.  
  9. int n,m,p;
  10. int a[N][N];
  11. int x[N],nrsol,viz[N],nr[N];
  12.  
  13. void Citire()
  14. {
  15. int x,y,i,v;
  16. fin>>n>>p>>m;
  17. memset(a,-1,sizeof(a));
  18. for(i=1;i<=p;i++)
  19. {
  20. fin>>x>>y>>v;
  21. a[x][y]=a[y][x]=v;
  22. }
  23. }
  24.  
  25. bool Valid(int k)
  26. {
  27. if(k==1) return 1;
  28. if(a[x[k-1]][x[k]]==-1) return 0;
  29. nr[k]=nr[k-1]+a[x[k-1]][x[k]];
  30. return 1;
  31. }
  32.  
  33. inline bool SolFin(int m)
  34. {
  35. if(a[x[m]][x[1]]==-1) return 0;
  36. if(nr[m]==0) return 0;
  37. ///if(nr[m]==0 && a[x[m]][[]])
  38. return 1;
  39. }
  40.  
  41. void Back(int k)
  42. {
  43. for(int i=1;i<=n;i++)
  44. if(!viz[i]){
  45. x[k]=i;
  46. viz[i]=1;
  47. if(Valid(k))
  48. if(k==m) {
  49. if(SolFin(m)) nrsol++;
  50. }
  51. else Back(k+1);
  52. viz[i]=0;
  53. }
  54. }
  55.  
  56. int main()
  57. {
  58. Citire();
  59. Back(1);
  60. fout<<nrsol;
  61. return 0;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement