Pagini recente » Cod sursa (job #1631246) | Cod sursa (job #898197) | Cod sursa (job #1192991) | Cod sursa (job #1843846) | Cod sursa (job #1550123)
#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;
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';
p[n + 1] = maxi + 1;
poz = 1;
for(int j = 1; j <= n; ++j)
if(p[j] == poz && p[j + 1] != p[j]){
poz++;
fout<<v[j]<<" ";
}
return 0;
}