結果

問題 No.1160 Strange Bowling
ユーザー elphe
提出日時 2024-11-12 16:48:15
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 21 ms / 2,000 ms
コード長 552 bytes
コンパイル時間 810 ms
コンパイル使用メモリ 74,496 KB
最終ジャッジ日時 2025-02-25 04:00:15
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 36
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <iostream>
#include <cstdint>
#include <vector>

using namespace std;

int main()
{
	cin.tie(nullptr);
	ios::sync_with_stdio(false);

	int32_t N, i;
	cin >> N;
	vector<int32_t> p(N), a(N);
	for (i = 0; i != N; ++i) cin >> p[i] >> a[i];

	vector<pair<int32_t, int32_t>> dp(N);
	dp[N - 1] = { p[N - 1], p[N - 1] };
	for (i = N - 2; i != -1; --i)
		dp[i] = { max(dp[i + 1].first, dp[i + 1].second) + p[i], max(dp[i + 1].first + a[i] + p[i + 1], dp[i + 1].second + a[i] + a[i + 1]) };

	cout << max(dp[0].first, dp[0].second) << '\n';
	return 0;
}
0