Simple Recursion only, No DP, Beats 100%, 0ms, C++
Intuition\n\n\n# Code\n\nclass Solution {\npublic:\n\n    vector<int> rec(int left, int mid, int right){\n        vector<int> ans = {(int)1e9,-(int)1e9};\n     
# Intuition\n\n\n# Code\n```\nclass Solution {\npublic:\n\n    vector<int> rec(int left, int mid, int right){\n        vector<int> ans = {(int)1e9,-(int)1e9};\n        if (left == right){\n            return {1,1};\n        }\n        if (left > right) swap(left, right);\n        \n        int tot = left+1+mid+1+right;\n        for(int n_left=0;n_left<=left;n_left++){\n            int right_pos = left+1+mid+1;\n            if (right_pos > (tot+1)/2){\n                for(int right_add=0;right_add <= tot-right_pos-left-1; right_add++){\n                    int n_right = left-n_left + right_add;\n                    int n_mid = (tot+1)/2 - n_left-n_right-2  ;\n                    auto tmp = rec(n_left,n_mid,n_right);\n                    ans[0] = min(ans[0], tmp[0]+1);\n                    ans[1] = max(ans[1], tmp[1]+1);\n                }\n            }\n            else {\n                for(int n_mid=0;n_mid<= right_pos-1-left-1; n_mid++){\n                    int n_right= (tot+1)/2 - n_left-n_mid-2;\n                    auto tmp = rec(n_left,n_mid,n_right);\n                    ans[0] = min(ans[0], tmp[0]+1); \n                    ans[1] = max(ans[1], tmp[1]+1); \n                }\n            }\n        }\n        return ans;\n\n    }\n    vector<int> earliestAndLatest(int n, int firstPlayer, int secondPlayer) {\n        return rec(firstPlayer-1, secondPlayer-firstPlayer-1, n-secondPlayer);\n    }\n};\n```
['C++']