Lang:G++
Edit12345678910111213141516171819202122#include<cstdio>#include<climits>#include<algorithm>using namespace std;int f[201][201];int fmin(int l, int r) {if(l >= r) return 0;if(f[l][r] > 0) return f[l][r];int res = INT_MAX;for(int i = l; i <= r; i++) {res = min(res, i + max(fmin(l, i - 1), fmin(i + 1, r)));}return f[l][r] = res;}int main() {int n;scanf("%d", &n);printf("%d\n", fmin(1, n));}