Pagini recente » Cod sursa (job #100446) | Cod sursa (job #1712233) | Cod sursa (job #2862090) | Cod sursa (job #2936031) | Cod sursa (job #2862001)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
vector<int>v;
vector<int>kiir;
int beff[100001];
int place[100001];
int maxmplace;
int maxmindex;
int main()
{
int n;
f>>n;
for (int i=0; i<n; i++)
{
int a;
f>>a;
v.push_back(a);
}
f.close();
for (int i=0;i<n;i++)
{
for (int j=0;j<i;j++){
if(place[i]-1<place[j]){
if(v[j]<v[i]){
place[i]=place[j]+1;
if(place[i]>maxmplace){
maxmplace=place[i];
maxmindex=i;
}
beff[i]=j;
}
}
}
}
/*for (int i=0;i<n;i++){
cout<<beff[i]<<" ";
}
cout<<endl;
for (int i=0;i<n;i++){
cout<<place[i]<<" ";
}
cout<<endl;*/
g<<++maxmplace;
g<<endl;
kiir.push_back(v[maxmindex]);
while(place[maxmindex]!=0){
maxmindex=beff[maxmindex];
kiir.push_back(v[maxmindex]);
}
for (int i : kiir){
g<<kiir.back()<<" ";
kiir.pop_back();
}
g.close();
return 0;
}