Pagini recente » Cod sursa (job #585043) | Cod sursa (job #1660798) | Cod sursa (job #779680) | Cod sursa (job #1969629) | Cod sursa (job #1899202)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f ("secv.in");
ofstream g ("secv.out");
int n,v[5001],t[5001],a[5001],k,r=5001,i,j,p;
int main()
{
f>>n;
for(i=1;i<=n;++i) //citire
{
f>>v[i];
t[i]=v[i];
}
sort(t+1,t+n+1); //sortam
k=1;
a[k]=t[1]; //primul e si primul din cele sortate
for(i=2;i<=n;i++) if(t[i]!=a[k]) {++k;a[k]=t[i];} //determinam in a, multimea valorilor
for(i=1;i<=n;i++)
{
if(v[i]==a[1]) //am gasit valoarea de start
{
p=2;
for(j=i+1;j<=n;++j) //continuam cu gasirea celorlalte
{
if(v[j]==a[p]) //daca am gasit valoare
{
++p; //cautam pe urmatoarea
if(p==k+1) //daca am ajuns la toate elementele
{
if(j-i+1<r) r=j-i+1; //schimbam cea mai buna valoare
break; //incercam si cu alta posibilitate
}
}
}
}
}
if(k==1) r=1;
if(r!=5001) g<<r; //daca am schimbat valoarea
else g<<"-1"; //daca nu am gasit subsir
return 0;
}