//https://yukicoder.me/problems/no/561 //http://hamayanhamayan.hatenablog.jp/entry/2017/08/26/005044 #include #include #include #include #include #include using namespace std; const int MAX_N=100; long long n,d,t,k; long long dp[MAX_N+1][2]; //dp[day+1][tokyo(0) or kyoto(1)] int main(){ //dp cin >> n >> d; memset(dp, -1*(1<<20), sizeof(dp)); dp[0][0]=0; //in tokyo. dp[0][1]=-d; //kyotoに移動すると-dされる. for(int i=0;i> t >> k; for(int j=0;j<=1;j++){ dp[i+1][j] = max(dp[i][j]+(j?k:t), dp[i+1][j]); dp[i+1][1-j] = max(dp[i][j]+(1-j?k:t)-d, dp[i+1][1-j]); } } cout << max(dp[n][0],dp[n][1]) << endl; return 0; }