題目
過程
思路
每次輸入一個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;}