Pagini recente » Cod sursa (job #3249179) | Cod sursa (job #2329551) | Cod sursa (job #412270) | Cod sursa (job #2452239) | Cod sursa (job #2423509)
#include <iostream>
#include<fstream>
#include<vector>
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
int n,vec[100000];
vector<int> results[1000000];
void read()
{
in>>n;
for(int i=0; i<n; i++)
{
in>>vec[i];
}
}
void solve()
{
int maxindex=0;
int index_true;
for(int i=0; i<n; i++)
{
int index_to_change;
int maxsize=0;
bool change=false;
for(int k=0; k<i; k++)
{
if(vec[k]<vec[i])
{
if(results[k].size()>maxsize)
{
maxsize=results[k].size();
index_to_change=k;
change=true;
}
}
}
if(change)
{
results[i]=results[index_to_change];
}
results[i].push_back(i);
if(results[i].size()>maxindex)
{
maxindex=results[i].size();
index_true=i;
}
}
out<<results[index_true].size()<<endl;
for(int k=0; k<results[index_true].size(); k++)
{
out<<vec[results[index_true][k]]<<" ";
}
}
int main()
{
read();
solve();
return 0;
}