题解:AT_abc397_c [ABC397C] Variety Split Easy
AT_abc_397_c
题目大意:
将有
思路:
我们用两个桶来记录数的个数,第一个桶记录左边,第二个桶记录右边,大于
AC code
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e6 + 10;
int n, ans, maxn;
int a[N], cnta[N], cntb[N];
signed main(){
cin >> n;
for(int i = 1 ; i <= n ; i ++) {
cin >> a[i];
cntb[a[i]] ++;
}
for(int i = 1 ; i <= n ; i ++) {
if(cntb[i] > 0) ans ++;
}
for(int i = 1 ; i <= n ; i ++) {
cntb[a[i]] --;
if(cntb[a[i]] == 0) ans --;
cnta[a[i]] ++;
if(cnta[a[i]] == 1) ans ++;
if(ans > maxn) maxn = ans;
}
cout << maxn << '\n';
return 0;
}