题目
过程
思路
每次输入一个Bi即可确定一个Ai值,用temp记录1~B[i-1],的最大值分为两种情况:
- 当temp不等于Bi时,则说明Bi值之前未出现过,Ai必须等于Bi才能满足Bi是Ai前缀最大的定义。
- 当temp等于Bi时,则说明Bi值之前已经出现过,此时Ai最小为0,最大为Bi。
最大值big和最小值small根据不同情况相加。
代码
#include <bits/stdc++.h>
using namespace std;
int n;
int B[100010];
int main()
{cin>>n;int big=0;int small=0;int temp=0;//当前最大值 for(int i=1;i<=n;i++){cin>>B[i];if(temp!=B[i]) {big+=B[i];temp=B[i];small+=temp; }else{big+=temp;small+=0;}}cout<<big<<endl;cout<<small<<endl;}