Cod sursa(job #1131697)

Utilizator andrei_stoicaStoica Andrei Florian andrei_stoica Data 1 martie 2014 00:24:39
Problema Subsir crescator maximal Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>
using namespace std;
int v[100001], t[100001], n, l=0, lg[100001];
ifstream in("scmax.in"); 
ofstream out("scmax.out");
void refac(int k, int i)
{
 
    for(; i>=1; i--)
    if(lg[i]==k)
	{
		if(k>1) refac(k-1, i-1);
		out<<v[i]<<" "; 
		break;
	}
}
int main()
{
    int i,j,ch;
    in>>n;
    for(i=0;i<n;i++)
	{
		in>>v[i]; 
		ch=0;
        for(j=1;j<=l;j++)
            if(v[i]<=t[j])
			{
				t[j]=v[i];
				ch=1; 
				lg[i]=j;
				break;
			}
        if(!ch)
		{
			t[++l]=v[i]; 
			lg[i]=l;
		}
	}
    out<<l<<"\n";
    refac(l, n);
    out<<"\n";
  }