Pagini recente » Monitorul de evaluare | Cod sursa (job #3296654) | Cod sursa (job #381188) | Cod sursa (job #1511126) | Cod sursa (job #1012980)
//
// main.cpp
// scmax++++
//
// Created by Catalina Brinza on 10/19/13.
// Copyright (c) 2013 Catalina Brinza. All rights reserved.
//
#include <iostream>
#include <fstream>
using namespace std;
int main()
{int n,i,j,x,k=0,l=0, v[100001],s[100001],pred[100001];
ifstream f("scmax.in");
ofstream g("scmax.out");
f>>n;
for (i=0;i<n;i++)
f>>v[i];
s[0]=1;
for (i=0;i<n;i++)
f>>v[i];
s[0]=1;
for (i=1;i<n;i++)
{s[i]=1;
pred[i]=-1;
k=0;
for ( j = 0; j < i; ++j )
if ( v[j] < v[i] && s[j] + 1 > s[i] ) {
s[i] = s[j] + 1;
pred[i] = j;
}
if (s[i]>l)
{k=i;
l=s[i];
}
}
g<<l<<endl;
x=0;
while (l!=0)
{s[x]=v[k];
x++;
k=pred[k];
l--;
}
for (i=x-1;i>=0;i--) g<<s[i]<<' ';
f.close();
g.close();
return 0;
}