Cod sursa(job #384312)

Utilizator ProcopliucProcopliuc Adrian Procopliuc Data 19 ianuarie 2010 21:08:15
Problema Subsir 2 Scor 44
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 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,pozz;
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]>=a[poz])
					{
					 
				     poz=i;
					 break;
					}
		g<<poz<<" ";
		
		min--;
		}
		
	return 0;
}