ann8497

Dr kim Samsung

Jun 29th, 2019
2,181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.97 KB | None | 0 0
  1. // DR kim Samsung
  2.  
  3.  
  4. #include <bits/stdc++.h>
  5. using namespace std;
  6. int visited[40] = {0};
  7. struct cord{
  8.    int x; int y;
  9. };
  10.  
  11. int solve(cord a[], int n, int x, int y, int index, int hx, int hy, int cnt){
  12.    
  13.    if(cnt==n)
  14.       return abs(x-hx) + abs(y-hy);
  15.      
  16.     int ans = INT_MAX;
  17.     for(int i =0;i<n;i++){
  18.        cord c = a[i];
  19.        if(!visited[i]){
  20.            visited[i] = 1;
  21.            int val = abs(x-c.x) + abs(y-c.y);
  22.            ans = min(ans , val + solve(a,n,c.x,c.y,i,hx,hy,cnt+1));
  23.            visited[i] = 0;
  24.        }
  25.      
  26.     }
  27.     return ans;
  28. }
  29.  
  30. int main(){
  31.    int t;
  32.    cin>>t;
  33.    while(t--){
  34.       int n; cin>>n; cord p[n];
  35.       int ox,oy; cin>>ox>>oy;
  36.       int hx,hy; cin>>hx>>hy;
  37.       for(int i =0;i<n;i++){
  38.          int x,y; cin>>x>>y;
  39.          cord a; a.x =x; a.y =y;
  40.          p[i] = a;
  41.       }
  42.       //int ans = 0;
  43.       int ans = solve(p,n,ox,oy,0,hx,hy,0);
  44.       cout<<ans<<endl;
  45.    }
  46.    
  47.    
  48.    return 0;
  49. }
Add Comment
Please, Sign In to add comment