Pagini recente » Cod sursa (job #986438) | Cod sursa (job #2971420) | Cod sursa (job #1430524) | Cod sursa (job #1461117) | Cod sursa (job #1452560)
#include<cstdio>
#include<iostream>
#include<fstream>
#include<stack>
#include<bitset>
#include<list>
using namespace std;
int main()
{
//ifstream si;
//si.open("gardul.in");
FILE* si=fopen("scmax.in","r");
//FILE* so=fopen("ordine.out","w");
ofstream so;
so.open("scmax.out");
int n;
fscanf(si,"%i",&n);
int i;
int v[n][3];
int m=0,poz,maxx=0,p;
for(i=0;i<n;++i)
{
fscanf(si,"%i",&v[i][0]);
maxx=0;
p=-1;
int j;
for(j=0;j<i;++j)
{
if(v[i][0]>v[j][0])
if(maxx<v[j][1])
{
maxx=v[j][1];
p=j;
}
}
v[i][1]=maxx+1;
if(v[i][1]>m)
{
m=v[i][1];
poz=i;
}
v[i][2]=p;
}
so<<m<<'\n';
stack<int> s;
while(poz!=-1)
{
s.push(v[poz][0]);
poz=v[poz][2];
}
while(s.size())
{
so<<s.top()<<' ';
s.pop();
}
so<<'\n';
}