Pagini recente » Cod sursa (job #937443) | Cod sursa (job #3195721) | Cod sursa (job #1340411) | Cod sursa (job #1138335) | Cod sursa (job #2412468)
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int v[1001],n,a[1001],s[1001],m;
void citire(){f>>n; for(int i=1;i<=n;i++) f>>v[i];}
int maxi(int k)
{
int maxim=0;
for(int j=2;j<=k;j++) if(a[j]>maxim && v[j]>v[k]) maxim=v[j];
return maxim;
}
void program(){
a[1]=1;
for(int i=2;i<=n;i++)
{ int maxim=0;
for(int j=i-1;j>=1;j--) if(a[j]>maxim && v[j]<v[i]) maxim=a[j];
a[i]=1+maxim;}
int axim=a[1];
for(int i=1;i<=n;i++)
if(a[i]>axim) axim=a[i];
g<<axim<<endl;
axim++;
for(int i=n;i>=1;i--)
if(a[i]==axim-1) {s[++m]=v[i];axim=a[i];}
for(int i=m;i>=1;i--) g<<s[i]<<" ";
}
int main()
{ citire();
program();
return 0;
}