C语言问题不会写求解。

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++吗?