C++ easy Solution
Intuition\n Describe your first thoughts on how to solve this problem. \n\n# Approach\n Describe your approach to solving the problem. \n\n# Complexity\n- Time 
# Intuition\n<!-- Describe your first thoughts on how to solve this problem. -->\n\n# Approach\n<!-- Describe your approach to solving the problem. -->\n\n# Complexity\n- Time complexity:\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n\n- Space complexity:\n<!-- Add your space complexity here, e.g. $$O(n)$$ -->\n\n# Code\n```cpp []\nclass Solution {\npublic:\n\n    int solve(int day, int curr,int k, vector<vector<int>>& stayScore, vector<vector<int>>& travelScore, vector<vector<int>>& dp){\n        \n        if(day == k)\n            return 0;\n    \n        if(dp[day][curr] != -1)\n            return dp[day][curr];\n    \n        //same city\n        int maxPoints = stayScore[day][curr] + solve(day + 1, curr, k, stayScore, travelScore, dp);\n    \n        // different city\n\n    \n        for(int i=0;i< travelScore.size();i++){\n            if(i != curr)\n                maxPoints = max(maxPoints , travelScore[curr][i] + solve(day + 1, i, k, stayScore, travelScore, dp));\n        }\n\n        dp[day][curr] = maxPoints;\n    \n    return maxPoints;\n    \n    \n    }\n\n\n    int maxScore(int n, int k, vector<vector<int>>& stayScore, vector<vector<int>>& travelScore) {\n        vector<vector<int>> dp(k, vector<int>(n, -1));\n\n        int maxPoints = 0;\n\n        for(int i=0; i < n; i++){\n            maxPoints = max(maxPoints, solve(0,i,k,stayScore, travelScore, dp));\n        }\n\n        return maxPoints;\n\n        \n    }\n};\n```
[]