#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
#include <cstdio>
#include <set>
#include <map>
using namespace std;
#define maxn 1000000
int p, a[maxn];
set<int> b;
void solve()
{
for(int i=0; i<p; i++)
b.insert(a[i]);
int n = b.size();
int s = 0, t = 0, num = 0;
map<int, int> cnt;
int res = p;
for(;;)
{
while(t < p && num < n)
if(cnt[a[t++]]++ == 0) num++;
if(num < n) break;
res = min(res, t - s);
if(cnt[a[s++]]--) num--;
}
cout<<res<<endl;
}
int main()
{
while(~scanf("%d", &p))
{
b.clear();
for(int i=0; i<p; i++)
scanf("%d", &a[i]);
solve();
}
return 0;
}
POJ 3320
最新推荐文章于 2021-10-14 20:07:21 发布