Pagini recente » Cod sursa (job #1304710) | Cod sursa (job #2947308) | Cod sursa (job #1945686) | Cod sursa (job #1918193) | Cod sursa (job #2187404)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
const int N=100000;
int n;
int v[N+5],mic[N+5];
int main()
{
fin>>n;
for(int i=1;i<=n;i++)
{
fin>>v[i];
mic[i]=(1<<30);
}
for(int i=1;i<=n;i++)
{
int r=0,pas=(1<<17);
while(pas)
{
if(r+pas<=n && v[i]>mic[r+pas])
r+=pas;
pas/=2;
}
mic[r+1]=min(mic[r+1],v[i]);
/**for(int j=1;j<=n;j++)
{
fout<<mic[j]<<" ";
}
fout<<"\n";**/
}
int poz=0;
for(int i=n;i>=1;i--)
if(mic[i]!=(1<<30))
{
poz=i;
break;
}
fout<<poz<<"\n";
for(int i=1;i<=poz;i++)
fout<<mic[i]<<" ";
return 0;
}
/**
**/