Pagini recente » Cod sursa (job #383393) | Cod sursa (job #1468060) | Cod sursa (job #1038929) | Cod sursa (job #691095) | Cod sursa (job #2164106)
#include <fstream>
#include <cstring>
#include <algorithm>
#define nmax 1000010
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n,i,a[nmax],lg[nmax],ind[nmax],p[nmax],ans,poz;
void afisare(int x)
{
if (x==0)
return;
afisare(p[x]);
fout << a[x] << ' ';
}
int main()
{
fin >> n;
for (i=1; i<=n; i++)
{
fin >> a[i];
int poz=lower_bound(lg+1,lg+ans+1,a[i])-lg;
lg[poz]=a[i];
ind[poz]=i;
p[i]=ind[poz-1];
if (poz>ans)
ans=poz;
}
fout << ans << '\n';
afisare(ind[ans]);
}