Pagini recente » Cod sursa (job #1421519) | Cod sursa (job #391220) | Cod sursa (job #3137954) | Cod sursa (job #1365205) | Cod sursa (job #2027226)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
const int maxN=100005;
int n,k,maxim,maxA,start,aux,V[maxN],A[maxN],B[maxN],X[maxN],cnt;
int main()
{
f>>n;
for(int i=1;i<=n;i++)
{
f>>V[i];
aux=V[i];
k=1;
while(aux>B[k] && k<=maxim) k++;
B[k]=aux;
A[i]=k;
if(k>maxA) {maxA=k; start=i;}
maxim=max(maxim,k);
}
g<<maxim<<'\n';
while(A[start]>=1)
{
X[++cnt]=V[start];
if(A[start]==1) break;
int i=start;
while(A[i]>=1 && A[i]!=A[start]-1) i--;
start=i;
}
for(int i=cnt;i>=1;i--) g<<X[i]<<" ";
return 0;
}