Cod sursa(job #497467)

Utilizator militerMilitaru Gabriel Ovidiu militer Data 2 noiembrie 2010 16:48:08
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;

vector <int> v;

int a[100005],b[100005], p[100005];

int main()
{int n,i,x,m=0,y=0,indMax;
int max=0;
ifstream f("scmax.in");
ofstream g("scmax.out");
f>>n;
for(int i=1;i<=n;i++)
	f>>a[i];
for(int i=1;i<=n;i++)
{b[i]=1;
	for(int j=i-1;j>0;j=j-1)
			if(a[i]>a[j] && b[i] < b[j] + 1) {
				b[i]=1+b[j];
				p[i] = j;
			}
			if(max<b[i])
				{max=b[i];
				indMax = i;
				}
}
g<<max<<endl;

for(int i=indMax;i>0;i=p[i])
	v.push_back(a[i]);
for(int i=v.size()-1;i>=0;i--)
	g<<v[i]<<" ";

f.close();
g.close();
return 0;
}