C. Basketball Exercise

time limit per test

2 seconds

memory limit per test

256 megabytes

Finally, a basketball court has been opened in SIS, so Demid has decided to hold a basketball exercise session. 2⋅n2⋅n students have come to Demid's exercise session, and he lined up them into two rows of the same size (there are exactly nn people in each row). Students are numbered from 11 to nn in each row in order from left to right.

Now Demid wants to choose a team to play basketball. He will choose players from left to right, and the index of each chosen player (excluding the first one taken) will be strictly greater than the index of the previously chosen player. To avoid giving preference to one of the rows, Demid chooses students in such a way that no consecutive chosen students belong to the same row. The first student can be chosen among all 2n2n students (there are no additional constraints), and a team can consist of any number of students.

Demid thinks, that in order to compose a perfect team, he should choose students in such a way, that the total height of all chosen students is maximum possible. Help Demid to find the maximum possible total height of players in a team he can choose.

Input

The first line of the input contains a single integer nn (1≤n≤1051≤n≤105) --- the number of students in each row.

The second line of the input contains nn integers h1,1,h1,2,...,h1,nh1,1,h1,2,...,h1,n (1≤h1,i≤1091≤h1,i≤109), where h1,ih1,i is the height of the ii-th student in the first row.

The third line of the input contains nn integers h2,1,h2,2,...,h2,nh2,1,h2,2,...,h2,n (1≤h2,i≤1091≤h2,i≤109), where h2,ih2,i is the height of the ii-th student in the second row.

Output

Print a single integer --- the maximum possible total height of players in a team Demid can choose.

Examples

Input

Copy

复制代码
5
9 3 5 7 3
5 8 1 4 5

Output

Copy

复制代码
29

Input

Copy

复制代码
3
1 2 9
10 1 1

Output

Copy

复制代码
19

Input

Copy

复制代码
1
7
4

Output

Copy

复制代码
7

Note

In the first example Demid can choose the following team as follows:

In the second example Demid can choose the following team as follows:

解题说明:此题是一道动态规划题,两排运动员的身高,选出运动员使总身高最大(不能出现有两个运动员是连续痛一排的,只能挨着的两个运动员是不同排位的),输出得到的最大总身高,直接按照DP算法进行求解。

cpp 复制代码
#include<stdio.h>
#include<string.h>
long long int max(long long int a, long long int b)
{
	if (a > b)
	{
		return a;
	}
	else
	{
		return b;
	}
}

int main()
{
	int n;
	scanf("%d", &n);
	long long int h[2][100005];
	for (int i = 0; i < n; i++)
	{
		scanf("%lld", &h[0][i]);
	}
	for (int i = 0; i < n; i++)
	{
		scanf("%lld", &h[1][i]);
	}
	long long int dp[3][n];

	memset(dp, 0, sizeof(dp));
	dp[0][0] = h[0][0];
	dp[1][0] = h[1][0];
	dp[2][0] = 0;

	for (int i = 1; i < n; i++)
	{
		dp[0][i] = max(dp[1][i - 1] + h[0][i], dp[2][i - 1] + h[0][i]);
		dp[0][i] = max(dp[0][i], h[0][i]);

		dp[1][i] = max(dp[0][i - 1] + h[1][i], dp[2][i - 1] + h[1][i]);
		dp[1][i] = max(dp[1][i], h[1][i]);

		dp[2][i] = max(dp[0][i - 1], dp[1][i - 1]);
	}
	printf("%lld\n", max(dp[0][n - 1], dp[1][n - 1]));
	return 0;
}
相关推荐
吴声子夜歌6 分钟前
ApacheCommons——commons-pool2(高性能通用对象池框架)
java·开发语言·apache
kruptos5 小时前
分布式系统怎么“选主“?Raft 共识一次讲清
开发语言·分布式·php·共识算法
吴声子夜歌6 小时前
ApacheCommons——commons-cli(命令行参数解析)
java·开发语言·apache
benchmark_cc7 小时前
REST API 和 Python SDK 应该怎么选?量化交易数据接口选型实战
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
王的宝库7 小时前
Go 项目结构:从单文件到标准工程布局
开发语言·后端·golang
Tairitsu_H7 小时前
[C++] 深入理解红黑树:封装set与map
开发语言·c++·set·map·红黑树·模拟实现
泡海椒7 小时前
JQuick-Curl 性能分析:并发场景下的性能表现与调优,第三方接口调用不只要快写也要稳跑
java·开发语言·okhttp
小智老师PMP7 小时前
2026深度解析|PMP第八版与NPDP核心侧重点本质区别(管理类证书怎么选)
开发语言·分布式·算法·职场和发展·产品经理
江畔柳前堤8 小时前
前台·中台·后台:2026年AI原生时代的架构全景图
开发语言·人工智能·算法·机器学习·架构·scala·ai-native
Figo_Cheung8 小时前
Figo基于RNC理论的宇宙演化第七纪元猜想
开发语言·php