Pagini recente » Cod sursa (job #1239676) | Cod sursa (job #3186369) | Cod sursa (job #2959494) | Cod sursa (job #2485217) | Cod sursa (job #1502396)
#include <bits/stdc++.h>
using namespace std;
ifstream f ("scmax.in");
ofstream g ("scmax.out");
int n, v[100005], bts[100005], poz[100005], Max, p;
void citire(){
int i;
for(i = 0; i < n; i++){
f>>v[i];
}
}
void rezolv(){
int i, j;
for(i = n - 1; i >= 0; i--){
poz[i] = -1;
bts[i] = 1;
for(j = i + 1; j < n; j++){
if(v[i] < v[j] && bts[i] < bts[j] + 1){
bts[i] = bts[j] + 1;
poz[i] = j;
if(bts[i] > Max){
Max = bts[i];
p = i;
}
}
}
}
}
void afisare(){
while(p != -1){
g<< v[p]<< " ";
p = poz[p];
}
}
int main()
{
f>>n;
citire();
rezolv();
g<<Max<<'\n';
afisare();
return 0;
}