Pagini recente » Cod sursa (job #363261) | Cod sursa (job #683680) | Cod sursa (job #2119675) | Cod sursa (job #272481) | Cod sursa (job #482716)
Cod sursa(job #482716)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("secv.in");
ofstream g("secv.out");
int v[5001],a[5001],loc[5001],valid[5001],sol[5001],poz[5001],ast,n,m;
int main()
{
int i;
f>>n;
for(i=1;i<=n;i++)
{
f>>v[i];
if(!loc[v[i]])
{
a[++m]=v[i];
loc[v[i]]=m;
sol[m]=n+1;
}
}
sort(a+1,a+m+1);
for(i=1;i<=m;i++)
loc[a[i]]=i;
valid[0]=true;
for(i=1;i<=n;i++)
{
ast=loc[v[i]];
if(valid[ast-1])
{
valid[ast]=true;
if(v[i]==a[1])
{
sol[1]=1;
poz[1]=i;
}
else
if(sol[ast-1]+i-poz[ast-1]<sol[ast])
{
sol[ast]=sol[ast-1]+i-poz[ast-1];
poz[ast]=i;
}
}
}
g<<sol[m];
return 0;
}