Pagini recente » Cod sursa (job #411706) | Cod sursa (job #643637) | Cod sursa (job #2557466) | Cod sursa (job #284873) | Cod sursa (job #2638114)
/*http://algopedia.ro/wiki/index.php/Psihologia_concursurilor_de_informatic%C4%83/6_Probleme_de_concurs_3*/
#include <iostream>
#include <fstream>
#define DIM 100005
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int v[DIM], n, q[DIM], lmax, sol[DIM];
int p[DIM], cp;
void adaugare(int val){
if(q[lmax] < val){
q[++lmax] = val;
p[++cp] = lmax;
}
else{
int i=1;
while(val > q[i])
i++;
q[i] = val;
p[++cp] = i;
}
}
void solutie(){
sol[0] = lmax;
while(lmax != 0){
if(p[cp] == lmax)
sol[lmax--] = v[cp];
cp--;
}
for(int i=1; i<=sol[0]; i++)
g<<sol[i]<<" ";
}
int main()
{
f>>n;
f>>v[1];
q[1] = v[1]; p[1] = lmax = cp = 1;
for(int i=2; i<=n; i++){
f>>v[i];
adaugare(v[i]);
}
g<<lmax<<"\n";
solutie();
}