Cod sursa(job #482716)

Utilizator soare_cristian16Cristy93 soare_cristian16 Data 4 septembrie 2010 17:49:17
Problema Secv Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#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;
}