Pagini recente » Cod sursa (job #960465) | Cod sursa (job #312719) | Cod sursa (job #1593822) | Cod sursa (job #2426357) | Cod sursa (job #252930)
Cod sursa(job #252930)
#include<fstream>
using namespace std;
int a[100000];
int b[100000],l;
int main(){
int i, n, pas, j;
ifstream f("scmax.in");
ofstream g("scmax.out");
f>>n;
for(i=0;i<n;i++)
f>>a[i];
f.close();
b[l++]=a[0];
for(i=1;i<n;i++)
{
for(pas=1;pas<=l;pas<<=1);
for(j=l-1;pas;pas>>=1)
if(j-pas>=0&&b[j-pas]>=a[i])
j-=pas;
if(j==l-1&&b[j]<a[i]) b[l++]=a[i];
else b[j]=a[i];
}
g<<l<<'\n';
for(i=0;i<l;i++)
g<<b[i]<<' ';
g<<'\n';
g.close();
return 0;
}