Pagini recente » Diferente pentru runda/simulare-cartita-42 intre reviziile 1 si 2 | Istoria paginii utilizator/11am | Istoria paginii utilizator/m05ionut | Monitorul de evaluare | Cod sursa (job #470892)
Cod sursa(job #470892)
# include <fstream>
# include <iostream>
# include <algorithm>
# define DIM 5004
using namespace std;
int n, m, v[DIM], sol=DIM, p[DIM];
int cmp (int i, int j)
{
if (v[i]<v[j])return 1;
return 0;
}
void read ()
{
ifstream fin ("secv.in");
fin>>n;
for(int i=1;i<=n;++i)
fin>>v[i], p[i]=i;
sort(p+1, p+n+1, cmp);
int l=-1;
for (int i=1;i<=n;++i)
if (v[p[i]]!=l)
{
++m;
l=v[p[i]];
v[p[i]]=m;
}
else
v[p[i]]=m;
}
void solve ()
{
int nr;
for (int i=1;i<=n-m+1;++i)
if (v[i]==1)
{
nr=2;
for(int j=i+1;j<=n && nr<=m;++j)
{
if (v[j]==nr)
++nr;
if (nr==m+1 && j-i+1<sol)
sol=j-i+1;
}
}
}
int main()
{
read ();
solve ();
ofstream fout ("secv.out");
if (sol!=DIM)
fout<<sol;
else
fout<<"-1";
return 0;
}