Pagini recente » Cod sursa (job #2953254) | Cod sursa (job #225369) | Cod sursa (job #1789616) | Cod sursa (job #2449855) | Cod sursa (job #780756)
Cod sursa(job #780756)
#include <fstream>
#define MAX 100010
#include <algorithm>
using namespace std;
int n,v[MAX],c[MAX],s[MAX],nr;
ifstream f("scmax.in");
ofstream g("scmax.out");
int binary_search(int x)
{
int l=1, r=nr+1, md;
while(l<r) {
md=(l+r)/2;
if(s[md]>=x) r=md;
else l=md+1;
}
if(r>nr) nr=r;
s[r]=x;
return r;
}
void afisare(int pos,int nr)
{
for(int i=pos ; i>=0; i--)
if(c[i]==nr){
afisare(i,nr-1);
g<<v[i]<<" ";
return;
}
}
int main()
{
f>>n;
for(int i=0; i<=n; i++) f>>v[i];
for(int i=0; i<=n; i++) c[i]=binary_search(v[i]);
g<<nr<<endl;
afisare(n,nr);
return 0;
}