Cod sursa(job #2204521)
| Utilizator | Data | 16 mai 2018 09:32:57 | |
|---|---|---|---|
| Problema | Subsir crescator maximal | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.72 kb |
#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;
}
