Pagini recente » Cod sursa (job #3239057) | Cod sursa (job #2712958) | Cod sursa (job #3195746) | Cod sursa (job #340136) | Cod sursa (job #822302)
Cod sursa(job #822302)
//cel mai lung subsir crescator dintr un sir neordonat de n elem, n<=1000
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
int n,i, d[1000], v[1000], j, max, max2, f[1000], pos, m, var, comp;
ifstream f("scmax.in");
ofstream g("scmax.out");
f>>n;
d[1]=1;
for(i=1; i<=n; i++) f>>v[i];
for(i=2; i<=n; i++){
max=0;
var=-1;
for(j=i-1; j>=1; j--){
if(v[i]>v[j]) var=d[j]+1;
else if(v[i]==v[j]) var=d[j];
if(var>max) max=var;
}
d[i]=max;}
max2=-1000;
for(i=1; i<=n; i++) if(d[i]>max2) {
max2=d[i];
comp=v[i];
pos=i;}
m=1;
f[m]=comp;
max2=max2-1;
pos=pos-1;
while(pos!=0){
if((d[pos]==max2) && (v[pos]<comp)){
m++;
f[m]=v[pos];
comp=v[pos];
max2--;}
pos--;}
for(i=m; i>=1; i--) g<<f[i]<<' ';
return 0;
}