Advertisement
Guest User

Untitled

a guest
Dec 12th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.78 KB | None | 0 0
  1. class Solution {
  2. public:
  3. int sum_strings(vector<string>v){
  4. int sum=0;
  5. for(int i=0; i<v.size();i++){
  6. for(int j=0; j<v[i].size();j++){
  7. sum+=v[i][j];
  8. }
  9. }
  10. return sum;
  11. }
  12. int get_smallest_lex(vector<vector<string>>tickets,string cur_city, vector<string>&answer){
  13. vector<string>cur;
  14. int poz=0;
  15. for(int i=0; i<tickets.size();i++){
  16. if(tickets[i][0].compare(cur_city)==0){
  17. if(cur.size()==0){
  18. cur = tickets[i];
  19. }
  20. else if(sum_strings(cur)>sum_strings(tickets[i])){
  21. cur=tickets[i];
  22. }
  23. poz =i;
  24. }
  25. }
  26. answer = cur;
  27. return poz;
  28.  
  29. }
  30. void brute_force(vector<vector<string>>tickets, string current_city, vector<string>&answer, vector<string>&optimum){
  31.  
  32. if(tickets.size()==0){
  33. if(optimum.size()==0){
  34. optimum = answer;
  35. }
  36. else if(sum_strings(answer)<sum_strings(optimum)){
  37. optimum = answer;
  38. }
  39. return;
  40. }
  41. vector<string>used;
  42. int i = get_smallest_lex(tickets, current_city,used);
  43. answer.push_back(used[1]);
  44. tickets.erase(tickets.begin()+i);
  45. brute_force(tickets,used[1],answer,optimum);
  46. tickets.insert(tickets.begin()+i, used); answer.pop_back();
  47.  
  48. }
  49.  
  50. vector<string> findItinerary(vector<vector<string>>& tickets) {
  51. vector<string>answer= {{"JFK"}};
  52. vector<string>optimum;
  53. brute_force(tickets,"JFK",answer,optimum);
  54. return optimum;
  55. }
  56. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement