Cod sursa(job #863163)

Utilizator Kira96Denis Mita Kira96 Data 23 ianuarie 2013 15:39:58
Problema Subsir crescator maximal Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int s[100100],v[100100],i,k,kk,p,nr,tot,poz,ma,n;
int cb(int x){
    int m,i,j;
    i=1;
    j=poz;
    while(i<=j){
        m=(i+j)/2;
        if(s[m-1]<x&&s[m]>=x)
            return m;
        else if(s[m]>=x)
                j=m-1;
        else i=m+1;
    }  
    return i;
}

int main ()
{
	f>>n;
	for(p=1;p<=n;++p)
	{
		f>>nr;
		poz=cb(nr);
		s[poz]=nr;
		if(poz>ma)
		{
			ma=poz;
			for(kk=1;kk<=ma;++kk)
				v[kk]=s[kk];
		}
	}
	g<<ma<<"\n";
	for(kk=1;kk<=ma;++kk)
		g<<v[kk]<<" ";
	return 0;
}