Cod sursa(job #1526094)
Utilizator | Data | 15 noiembrie 2015 22:22:55 | |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 1.29 kb |
#include <fstream>
using namespace std;
int main()
{
ifstream f ("scmax.in");
ofstream g ("scmax.out");
int l[101]={1}, v[100], i, n, j, a, c[100], Max=0, Maxi, b;
f>>n;
l[101]=-1;
for (i=0; i<n; i++)
{
f>>v[i];
}
for (i=0; i<n; i++)
{
l[i]=1;
}
for (i=0; i<n; i++)
{
a=v[i];
for (j=i-1; j>=0; j--)
{
if (v[j]<a)
{
l[i]++;
a=v[j];
}
}
if (l[i]>Max)
{
Max=l[i];
Maxi=i;
}
}
i=n-1;
do
{
if (l[i]==Max)
{
Maxi=i;
}
i--;
}
while (l[i]-Max);
a=Max;
b=10000;
for (i=Maxi; i>=0; i--)
{
if ((l[i]==a)&&(v[i]<b))
{
c[a]=v[i];
a--;
b=v[i];
}
}
for (i=1; i<=Max; i++)
{
g<<c[i]<<' ';
}
f.close();
g.close();
return 0;
}