Pagini recente » Cod sursa (job #1506059) | Cod sursa (job #2199177) | Cod sursa (job #1868221) | Cod sursa (job #1905328) | Cod sursa (job #990333)
Cod sursa(job #990333)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <unordered_map>
using namespace std;
#define Nmax 5002
unordered_map <int, bool> h;
int a[Nmax];
int b[Nmax];
int N, M;
int best = 0x3f3f3f;
void read()
{
ifstream f("secv.in");
f >> N;
for ( int i = 1; i <= N; ++i )
{
f >> a[i];
if ( h[ a[i] ] == 0)
{
h[ a[i] ] = 1;
b[ ++M ] = a[i];
}
}
f.close();
}
void solve()
{
for ( int i = 1; i <= N; ++i )
if ( a[i] == b[1] )
{
int matched = 1;
for ( int j = i + 1; j <= N + 1; ++j )
{
if ( a[j] == b[ matched + 1 ] )
matched++;
if ( matched == M )
{
best = min( best, j - i + 1 );
break;
}
}
}
}
void print()
{
ofstream g("secv.out");
if ( best == 0x3f3f3f )
g << "-1\n";
else
g << best << "\n";
g.close();
}
int main()
{
read();
sort( b + 1, b + M + 1 );
solve();
print();
return 0;
}