easy dp and easy to understand
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:O(N^2*K)\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n\n- Space complexity:O(N*K)\n<!-- Add your space complexity here, e.g. $$O(n)$$ -->\n\n# Code\n```cpp []\nclass Solution {\npublic:\n    int dp[201][201];\n    int solve(int city,int day,int k,int n,vector<vector<int>>& a,vector<vector<int>>& b){\n        if(city>=n or day>=k) return 0;\n        if(dp[city][day]!=-1) return dp[city][day];\n        int maxi=0;\n        for(int i=0;i<n;i++){\n            if(city!=i){\n                //tranporting on that day\n                maxi=max(maxi,b[city][i]+solve(i,day+1,k,n,a,b));\n            }\n            else{\n                maxi=max(maxi,a[day][city]+solve(city,day+1,k,n,a,b));\n            }\n        }\n        return dp[city][day]=maxi;\n    }\n    int maxScore(int n, int k, vector<vector<int>>& stayScore, vector<vector<int>>& travelScore) {\n        int maxi=0;\n        memset(dp,-1,sizeof(dp));\n        for(int i=0;i<n;i++){\n            maxi=max(maxi,solve(i,0,k,n,stayScore,travelScore)); \n        }\n        return maxi;\n    }\n};\n```
[]