Advertisement
Guest User

Untitled

a guest
May 26th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.15 KB | None | 0 0
  1. #include<cstdio>
  2. #include<cstring>
  3. #include<cstdlib>
  4. #include<cctype>
  5.  
  6. #include<cmath>
  7. #include<iostream>
  8. #include<fstream>
  9.  
  10. #include<string>
  11. #include<vector>
  12. #include<queue>
  13. #include<map>
  14. #include<algorithm>
  15. #include<set>
  16. #include<sstream>
  17. #include<stack>
  18. using namespace std;
  19.  
  20. struct LinearTravellingSalesman{
  21. int findMinimumDistance(vector <int> x, vector <int> y)
  22. {
  23. int i,min,n,count,visited[110],dis,ret=0,j;
  24. n=x.size();
  25. count=0;
  26. for(j=0;j<n;j++)
  27. visited[j]=0;
  28. i=0;
  29. while(count<n)
  30. {
  31. min=1000000000;
  32. for(j=0;j<n;j++)
  33. {
  34. if((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j])<min && visited[j]==0)
  35. {
  36. min=(x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]);
  37. i=j;
  38. }
  39. }
  40. count++;
  41. ret+=min;
  42. }
  43. return ret;
  44. }
  45.  
  46. // BEGIN CUT HERE
  47. public:
  48. void run_test(int Case) { if ((Case == -1) || (Case == 0)) test_case_0(); if ((Case == -1) || (Case == 1)) test_case_1(); if ((Case == -1) || (Case == 2)) test_case_2(); if ((Case == -1) || (Case == 3)) test_case_3(); if ((Case == -1) || (Case == 4)) test_case_4(); }
  49. private:
  50. template <typename T> string print_array(const vector<T> &V) { ostringstream os; os << "{ "; for (typename vector<T>::const_iterator iter = V.begin(); iter != V.end(); ++iter) os << '\"' << *iter << "\","; os << " }"; return os.str(); }
  51. void verify_case(int Case, const int &Expected, const int &Received) { cerr << "Test Case #" << Case << "..."; if (Expected == Received) cerr << "PASSED" << endl; else { cerr << "FAILED" << endl; cerr << "\tExpected: \"" << Expected << '\"' << endl; cerr << "\tReceived: \"" << Received << '\"' << endl; } }
  52. void test_case_0() { int Arr0[] = {1,3,5}; vector <int> Arg0(Arr0, Arr0 + (sizeof(Arr0) / sizeof(Arr0[0]))); int Arr1[] = {2,2,2}; vector <int> Arg1(Arr1, Arr1 + (sizeof(Arr1) / sizeof(Arr1[0]))); int Arg2 = 4; verify_case(0, Arg2, findMinimumDistance(Arg0, Arg1)); }
  53. void test_case_1() { int Arr0[] = {3,2,1}; vector <int> Arg0(Arr0, Arr0 + (sizeof(Arr0) / sizeof(Arr0[0]))); int Arr1[] = {3,2,1}; vector <int> Arg1(Arr1, Arr1 + (sizeof(Arr1) / sizeof(Arr1[0]))); int Arg2 = 4; verify_case(1, Arg2, findMinimumDistance(Arg0, Arg1)); }
  54. void test_case_2() { int Arr0[] = {0,100,1000,10000}; vector <int> Arg0(Arr0, Arr0 + (sizeof(Arr0) / sizeof(Arr0[0]))); int Arr1[] = {0,10,100,1000}; vector <int> Arg1(Arr1, Arr1 + (sizeof(Arr1) / sizeof(Arr1[0]))); int Arg2 = 11000; verify_case(2, Arg2, findMinimumDistance(Arg0, Arg1)); }
  55. void test_case_3() { int Arr0[] = {80,60,70,50}; vector <int> Arg0(Arr0, Arr0 + (sizeof(Arr0) / sizeof(Arr0[0]))); int Arr1[] = {50,70,60,80}; vector <int> Arg1(Arr1, Arr1 + (sizeof(Arr1) / sizeof(Arr1[0]))); int Arg2 = 60; verify_case(3, Arg2, findMinimumDistance(Arg0, Arg1)); }
  56. void test_case_4() { int Arr0[] = {7,7,7,7,7,7,7}; vector <int> Arg0(Arr0, Arr0 + (sizeof(Arr0) / sizeof(Arr0[0]))); int Arr1[] = {105,1231,5663,295,3062,380,7777}; vector <int> Arg1(Arr1, Arr1 + (sizeof(Arr1) / sizeof(Arr1[0]))); int Arg2 = 7672; verify_case(4, Arg2, findMinimumDistance(Arg0, Arg1)); }
  57.  
  58. // END CUT HERE
  59.  
  60. };
  61.  
  62. // BEGIN CUT HERE
  63. int main()
  64. {
  65. LinearTravellingSalesman ___test;
  66. ___test.run_test(-1);
  67. int gbase;
  68.  
  69. return 0;
  70. }
  71. // END CUT HERE
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement