Pagini recente » Cod sursa (job #1747819) | Cod sursa (job #270707) | Cod sursa (job #2100821) | Cod sursa (job #2637067) | Cod sursa (job #1049143)
#include <fstream>
#include <iostream>
#include <cstdio>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int n;
int v[100003], lung[100003];
int indice, maxl;
void printSub(){
g << v[indice] << " ";
for(int i = 1; i <= n; i++)
if(lung[i] == maxl - 1) {
g << v[i] << " ";
maxl --;
}
}
int main()
{
f >> n;
cout<<n<<"\n";
for(int i = 1; i <= n; i++)
f >> v[i];
for(int i = 1; i <= n; i ++)
cout << v[i] << " ";
lung[n] = 1;
for(int i = n-1; i >=1; i--){
for(int j = i+1; j <=n; j++)
if(v[i] < v[j] && lung[i] < lung[j]) {
lung[i] = lung[j] + 1; maxl = lung[i]; indice = i;
}
}
g << maxl << "\n";
printSub();
return 0;
}