4.
数字游戏
现在有一场数字游戏,参赛者会拿到一个长度为N (1<N<=1e6) 的数字序列a1,a2..
an(1<=ai<=1000),规则是:每次选择两个相邻的数字a和b,获得min(a,b)的分数, 然后较大的一一个数字将会消失。请你计算出对于一个序列能获得的最大分数。
输入说明:第一行一个正整数N表示输入的数字个数
第二行N个正整数,表示数字序列
输出说明:一个正整数表示能获得的最大分数。
输入样例:
4
1324
输出样例:
5
#include <stdio.h>
int main() {
int n,x,i,a[10000],sum=0,f=0;
char s[1000005];
scanf("%d",&n);
scanf("%s",&s);
for(i=0;i<n-1;i++){
if((s[i]<s[i+1])&&f==0){
sum+=s[i]-'0';
f=1;
}
else if(f==1){
if(s[i-1]<s[i+1])
sum+=s[i-1]-'0';
else
sum+=s[i+1]-'0';
}
else
sum+=s[i+1]-'0';
}
printf("%d",sum);
}
用c++吗?