Pagini recente » Cod sursa (job #247061) | Cod sursa (job #891672) | Cod sursa (job #1507772) | Cod sursa (job #1931709) | Cod sursa (job #3239670)
#include<fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
const int dim=100002;
int v[dim],pz[dim],pr[dim],q[dim];
void afis(int a)
{
if(a!=0)
{
afis(pr[a]);
g<<v[a]<<' ';
}
}
int main()
{
int i,j=0,n,k=0,st,dr,mij,poz;
f>>n;
for(i=1;i<=n;i++)
{
f>>v[i];
st=1;
dr=k;
while(st<=dr)
{
mij=(st+dr)/2;
if(v[i]>v[pz[mij]])
{
st=mij+1;
}
else
{
dr=mij-1;
}
}
pz[st]=i;
pr[i]=pz[st-1];
if(st>k)
{
k=st;
poz=i;
}
}
g<<k<<'\n';
// while(poz>0)
// {
// q[++j]=v[poz];
// poz=pr[poz];
// }
// for(i=j;i>=1;i--)
// g<<q[i]<<' ';
afis(poz);
return 0;
}