Pagini recente » Borderou de evaluare (job #1772023) | Borderou de evaluare (job #3113721) | Cod sursa (job #2098881) | Borderou de evaluare (job #2383485) | Cod sursa (job #2204521)
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int n, a[100005], lg[100005], i, j, lgmax, Max, p, ult;
int main()
{
f>>n;
for (i=1; i<=n; i++)
f>>a[i];
lg[n]=1;
for (i=n-1; i>=1; i--)
{
lgmax=0;
for (j=i+1; j<=n; j++)
if (a[i]<a[j] && lg[j]>lgmax) lgmax=lg[j];
lg[i]=lgmax+1;
if (lg[i]>Max)
{
Max=lg[i];
p=i;
}
}
g<<Max<<"\n";
g<<a[p]<<" ";
ult=a[p];
Max--;
for (i=p+1; i<=n; i++)
if (a[i]>ult && Max==lg[i])
{
g<<a[i]<<" ";
ult=a[i];
Max--;
}
return 0;
}