Advertisement
Farjana_akter

Untitled

Sep 3rd, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.95 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4.  
  5. int x[30],y[30],n,res;
  6. bool vis[30];
  7.  
  8.  
  9. void backtrack(int pos,int sum,int cnt)
  10. {
  11. if(cnt==n)
  12. {
  13. sum+=((abs(x[pos]-x[0]))+(abs(y[pos]-y[0])));
  14. // cout<<"sum "<<sum<<endl;
  15. res=min(res,sum);
  16. return;
  17. }
  18. else
  19. {
  20. for(int i=1;i<=n;i++)
  21. {
  22. if(vis[i]==false)
  23. {
  24. vis[i]=true;
  25. int ans=sum+((abs(x[pos]-x[i]))+(abs(y[pos]-y[i])));
  26. // cout<<"i "<<i<<" "<<"ans "<<ans<<" cnt "<<cnt+1<<endl;
  27. backtrack(i,ans,cnt+1);
  28. vis[i]=false;
  29. }
  30. }
  31. }
  32. }
  33.  
  34. int main()
  35. {
  36. //freopen("in.txt","r",stdin);
  37. //freopen("out.txt","w",stdout);
  38. int t,i,j,k,row,clmn;
  39. memset(vis,false,sizeof(vis));
  40. cin>>t;
  41. while(t--)
  42. {
  43. res=INT_MAX;
  44. cin>>row>>clmn;
  45. cin>>x[0]>>y[0];
  46. cin>>n;
  47. for(i=1;i<=n;i++)
  48. cin>>x[i]>>y[i];
  49. backtrack(0,0,0);
  50. cout<<"The shortest path has length "<<res<<endl;
  51. }
  52. return 0;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement