Pagini recente » Cod sursa (job #1749814) | Cod sursa (job #1412513) | Cod sursa (job #1697563) | Cod sursa (job #1140249) | Cod sursa (job #1739775)
#include <fstream>
using namespace std;
int n, v[100003], L[100002], maxim, pozsol, w[100002], pmaxim, T[100002];
ifstream fin ("scmax.in");
ofstream fout("scmax.out");
void drum(int p) {
if (p!=0) {
drum(T[p]);
fout<<v[p]<<" ";
}
}
int main () {
fin>>n;
for (int i=1;i<=n;i++)
fin>>v[i];
L[1] = 1;
int sol = 1;
for (int i=2;i<=n;i++) {
maxim = 0;
pmaxim = 0;
for (int j=1;j<i;j++)
if (v[j] < v[i] && L[j] > maxim) {
maxim = L[j];
pmaxim = j;
}
L[i] = 1 + maxim;
T[i] = pmaxim;
if (L[i] > sol) {
sol = L[i];
pozsol = i;
}
}
fout<<sol<<"\n";
drum(pozsol);
/*
int k=0;
for(int i=pozsol;i!=0;i=T[i]){
w[++k] = v[i];
}
for(int i=k;i>0;i--)
fout<<w[i]<<" ";
*/
return 0;
}