Pagini recente » Cod sursa (job #458040) | Rating Razvan Andrus (razvanelu99) | Cod sursa (job #2133969) | dot-com/2012/clasament | Cod sursa (job #2009641)
#include <fstream>
using namespace std;
ifstream fi("scmax.in");
ofstream fo("scmax.out");
int a[100005], poz[100005], aux[100005];
int i, j, n, maxi, x;
void afisare (int fx, int fp)
{
while ( poz[fp] != fx) fp--;
if (fx > 1) afisare (fx-1, fp-1);
fo << a[fp]<<" ";
}
int main()
{
fi >> n;
for (i=1; i<=n; i++) fi>>a[i];
for (i=1; i<=n; i++)
{
for(j=1; a[i] > aux[j] && j<=maxi; j++);
poz[i]=j;
aux[j]=a[i];
maxi=max(maxi, poz[i]);
}
fo << maxi <<"\n";
afisare (maxi, n);
//for(int i=1;i<=n;i++) fo<<poz[i]<< " ";fo<<'\n';
//for(int i=1;i<=n;i++) fo<<aux[i]<< " ";fo<<'\n';
}