Cod sursa(job #867910)

Utilizator varga13VarGaz13 varga13 Data 30 ianuarie 2013 12:48:55
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include <iostream>
#include <fstream>
  
using namespace std;
void PrintEx();
int a[100001], l[100001],poz, k,i,mx,maxa,mi,n;
  ifstream f("scmax.in");
    ofstream g("scmax.out");
int main()
{
    
      
    f>>n;
	//f>>a[n];
    for(i=1;i<=n;i++)
    {
        f>>a[i];
    }
      
    l[n]=1;
    
		
	
	mx=0;
	for(i=n-1;i>=1;i--)
    {	//mx=0;
		l[i]++;
		bool ok=true;
        for(k=i+1;k<=n&&ok;k++)
        {
            if(a[i]<a[k]&&l[k]>=mx)
			{
				mx=l[k];
				poz=k;
				ok=false;
			}
        }
		if(k!=n)
			l[i]=l[poz]+1;
		
		if(l[poz]+1>mx)
		{
			mx=l[poz]+1;
		}
        if(l[i]==0)
        {
            l[i]=1;
        }
    }
    g<<mx<<"\n";
    g<<a[poz]<<" ";
    for(i=1;i<=n;i++)
    {
        if(l[i]==mx-1)
        {
            g<<a[i]<<" ";
            mx--;
        }
    }
     PrintEx(); 
    return 0;
}

void PrintEx()
{
g<<'\n';
	
	for(int i=1;i<=n;i++)
		g<<a[i]<<' ';
	
g<<'\n';
	
	for(int i=1;i<=n;i++)
		g<<l[i]<<' ';
	
	
	
	
	
}