Pagini recente » Cod sursa (job #2240183) | Cod sursa (job #13067) | Cod sursa (job #2142218) | Cod sursa (job #3133804) | Cod sursa (job #1897220)
#include <fstream>
#include <vector>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int n,i,j,maxim,poz,ok;
struct valoare
{
int nr,cnt,ant;
};
valoare el;
vector <valoare> a;
void afis(int v)
{
if(a[v].ant) maxim++,afis(a[v].ant);
if(maxim) {g<<maxim+1<<'\n';maxim=0;}
g<<a[v].nr<<" ";
}
int main()
{
f>>n;
for(i=1;i<=n;i++)
f>>el.nr,a.push_back(el);
a[0].cnt=1;
a[0].ant=0;
for(i=1;i<n;i++)
{
ok=0;
for(j=i-1;j;j--)
{
if(a[j].nr<a[i].nr)
if(a[i].cnt<a[j].cnt+1)
{
a[i].cnt=a[j].cnt+1,a[i].ant=j;
if(a[i].cnt>maxim) poz=i;
ok=1;
}
}
}
afis(poz);
return 0;
}