Pagini recente » Cod sursa (job #3275564) | Cod sursa (job #825098) | Cod sursa (job #1914533) | Cod sursa (job #1647969) | Cod sursa (job #2559544)
#include <fstream>
#include <vector>
using namespace std;
//ifstream cin("scmax.in");
ofstream cout("scmax.out");
struct adat
{
int nr,maxi,help;
};
adat x[100000001];
vector<int>y;
int i,j,maxi,p,poz;
long long n;
int main()
{
FILE * pfile;
pfile = fopen ("scmax.in","r");
maxi=0;
fscanf(pfile,"%d",&n);
for(i=1;i<=n;++i)
{
fscanf(pfile,"%d",&x[i].nr);
x[i].maxi=1;
}
for(i=1;i<=n;++i)
{
for(j=i-1;j>=1;j--)
if(x[i].nr>x[j].nr && x[j].maxi+1>x[i].maxi)
{
x[i].help=j;
x[i].maxi=x[j].maxi+1;
if(x[i].maxi>maxi)
{
maxi=x[i].maxi;
poz=i;
}
}
}
cout<<maxi<<endl;
p=maxi;
for(i=poz;i>=1;i--)
if(x[i].maxi==p)
{
p--;
y.push_back(x[i].nr);
}
for(i=y.size()-1;i>=0;--i)
cout<<y[i]<<" ";
fclose(pfile);
return 0;
}