Pagini recente » Cod sursa (job #2110937) | Cod sursa (job #3153625) | Cod sursa (job #456963) | Cod sursa (job #3031294) | Cod sursa (job #1316405)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream in("secv.in");
ofstream out("secv.out");
const int NMAX = 5000;
const int INF = (1 << 30);
int v[NMAX + 5],sortat[NMAX + 5],a[NMAX + 5],n,m;
void read()
{
in>>n;
for(int i = 1 ; i <= n ; i++)
{
in>>v[i];
sortat[i] = v[i];
}
in.close();
}
void gaseste_subsir()
{
sort(sortat+1,sortat+n+1);
a[++m] = sortat[1];
for(int i = 2 ; i <= n ; i++)
if(sortat[i] != a[m])
a[++m] = sortat[i];
}
int solve()
{
int sol = INF,c;
for(int i = 1 ; i <= n ; i++){
c = 1;
for(int j = i ; j <= n ; j++){
if(v[j] == a[c])
++c;
if(c == m+1)
{
sol = min(sol,j-i+1);
break;
}
}
}
if(sol == INF)
return -1;
return sol;
}
int main()
{
read();
gaseste_subsir();
out<<solve();
return 0;
}