안녕하세요. 오늘은 피자게임을 할 거예요.
https://www.acmicpc.net/problem/14606
dp로 풀면 dp[i]=max(dp[a]+dp[b]+ab for a+b=i and a,b>0)이 됩니다.
수학으로 풀면 i개의 피자가 있을때 하나만 내리는것이 이득므로 1+2+3+...+(i-1)=i(i-1)/2가 됩니다.
#include <iostream>
#define ll long long
using namespace std;
int main(void)
{
ios_base::sync_with_stdio(false); cin.tie(NULL);
ll N;
cin >> N;
cout << N * (N - 1) / 2;
}
감사합니다.