Cod sursa(job #384294)

Utilizator ProcopliucProcopliuc Adrian Procopliuc Data 19 ianuarie 2010 20:40:20
Problema Subsir 2 Scor 46
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
# include <fstream.h>
ifstream f ("subsir2.in");
ofstream g ("subsir2.out");
int a[10000],l[100000],poz,i,j,k,min,inf=32000,n,minf,ok;
int main ()
{
	f>>n;
	for (i=1;i<=n;i++)
		f>>a[i];
	min=inf;
	for (i=n;i>=1;i--)
	{  
	minf=inf;min=inf;
		for (j=n;j>i;j--)
		
			
			if (a[j]>=a[i])
			{
				if (minf==l[j])
					if (min>=a[j])
					{
						min=a[j];
						
					}
				
				if (minf>l[j])
				{
					minf=l[j];
					min=a[j];
				    
				}
				else	
				if (min>=a[j])
				{
					min=a[j];
					minf=l[j];
				
				}
			}
		if (minf!=inf)	
		l[i]=minf+1;
		else
			l[i]=1;
		
	}
	
	
	
	min=inf;
	for (i=1;i<=n;i++)
	{
      ok=0;
	  for (j=1;j<i;j++)
		  if (a[j]<=a[i])
			  ok=1;
		  if (ok==0)
			  if (min>l[i])
				  {min=l[i];
			  poz=i;
				  }
		
	}
		g<<min<<"\n";
		g<<poz<<" ";
		min--;
		while (min)
		{
		
		minf=inf;
		for (i=poz;i<=n;i++)
			if (l[i]==min)
				if (a[i]<minf)
					{minf=a[i];
				poz=i;
					}
		g<<poz<<" ";
		min--;
		}
		
	return 0;
}