Pagini recente » Cod sursa (job #835875) | Cod sursa (job #1928156) | Cod sursa (job #2650757) | Cod sursa (job #387131) | Cod sursa (job #1660710)
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int a[100002];
int b[100002];
int poz[100002];
int maxim=-1;
int pmax;
int main()
{
int n;
fin >> n;
for(int i=1; i<=n; i++)
b[i]=1;
for(int i=1; i<=n; i++)
{
fin >> a[i];
bool sem=false;
for(int j=i-1; j>=1; j--)
{
if(a[i]>a[j])
{
if((b[j]+1)>b[i] && sem==true)
{
b[i]=b[j]+1;
poz[i]=j;
}
if(sem==false)
{
b[i]=b[j]+1;
sem=true;
poz[i]=j;
}
if(b[i]>maxim)
{
maxim=b[i];
pmax=i;
}
}
}
}
fout << maxim << '\n';
int pct=pmax;
while(b[pct]!=1)
{
fout << a[pct] << " ";
pct=poz[pct];
}
fout << a[pct];
return 0;
}