牛客OI周赛7-普及组 -- 数糖纸

链接:https://ac.nowcoder.com/acm/contest/372/D
来源:牛客网
 

题目描述

可能很多人要吐槽为什么标题不是“救救blabla”了。

怪人PM6喜欢数糖纸,不同的糖纸有不同的颜色,一共有 N 张糖纸,第 i 张糖纸颜色为 Ci ,它们的位置都是固定的。PM6喜欢五彩缤纷的糖纸,所以他不希望有重复的颜色。他有一次机会,可以收集任意一段连续区间内的糖纸。求出PM6最多能收集多少张糖纸。

输入描述:

第一行一个正整数 N ,表示共有 N 张糖纸。
第二行共有 N 个正整数,第 i 个正整数表示第 i 张糖纸的颜色 Ci
对于20%的数据:1<=N<=100
对于40%的数据:1<=N<=1000
对于100%的数据:1<=N<=1e6,0<=Ci<=1e9

输出描述:

一个整数表示PM6最多能收集多少张糖纸。

示例1

输入

复制

5
1 2 2 3 4

输出

复制

3

说明

PM6可以收集第3到第5张的糖纸,共有三张。
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;

const int MAX = 1e6+10 ;
const int mm = 1e9+10 ;
int a[MAX] ;
int book[mm] ;
int main(){
	int n ;
	int maxn = -1 ;
	cin >> n ;
	int r = 1 ;
	int l = 1 ;
	for(int i = 1 ; i<=n ; i++ )cin>>a[i] ;
	while(r<=n){
		if(!book[a[r]]){
			book[a[r]] = 1 ;
			r++ ;
			maxn = max(maxn,r-l);
		}
		else{
			while(book[a[r]]){
				book[a[l]] = 0 ;
				l++ ;
			}
		}
		
		
	}
	cout<

 

你可能感兴趣的:(牛客网)