Pagini recente » Cod sursa (job #981548) | Cod sursa (job #1029488) | Cod sursa (job #40643) | Cod sursa (job #159919) | Cod sursa (job #1550128)
#include <fstream>
#define NM 100010
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n, v[NM], s[NM], p[NM], maxi, ok, poz;
void afis(int m, int n){
int i;
for(i = n; i >= 0; --i)
if(p[i] == m)
break;
m--;
if(m)
afis(m, i);
fout<<v[i]<<" ";
}
int main()
{
fin>>n;
fin>>v[1];
s[1] = v[1];
p[1] = 1;
maxi = 1;
for(int i = 2; i <= n; ++i){
fin>>v[i];
ok = 0;
poz = 0;
for(int j = 1; j <= maxi && !ok; ++j)
if(s[j] >= v[i]){
ok = 1;
poz = j;
}
if(ok){
s[poz] = v[i];
p[i] = poz;
}
else {
maxi++;
s[maxi] = v[i];
p[i] = maxi;
}
}
fout<<maxi<<'\n';
afis(maxi, n);
return 0;
}