Pagini recente » Cod sursa (job #1191257) | Cod sursa (job #284155) | Cod sursa (job #2613040) | Cod sursa (job #1510333) | Cod sursa (job #2862016)
#include <iostream>
#include <fstream>
#include <vector>
#include <list>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
vector<int>v;
vector<int>kiir;
list<int>szamok;
bool numbers[100001];
int beff[100001];
int place[100001];
int maxmplace;
int maxmindex;
int main()
{
int n;
f>>n;
int a;
f>>a;
v.push_back(a);
for (int i=1; i<n; i++)
{
int a;
f>>a;
v.push_back(a);
int maxm=-1;
int maxmindex=0;
for (int j=0;j<i;j++)
{
if(v[j]<v[i] && maxm<place[j]){
maxm=place[j];
maxmindex=j;
}
}
if(maxm!=-1){
beff[i]=maxmindex;
place[i]=place[maxmindex]+1;
}
}
f.close();
for (int i=0;i<n;i++){
cout<<beff[i]<<" ";
}
cout<<endl;
for (int i=0;i<n;i++){
cout<<place[i]<<" ";
}
cout<<endl;
for (int i=0;i<n;i++){
if(maxmplace<place[i]){
maxmplace=place[i];
maxmindex=i;
}
}
g<<++maxmplace;
g<<endl;
kiir.push_back(v[maxmindex]);
while(place[maxmindex]!=0){
maxmindex=beff[maxmindex];
kiir.push_back(v[maxmindex]);
}
while (!kiir.empty()){
g<<kiir.back()<<" ";
kiir.pop_back();
}
g.close();
return 0;
}