Pagini recente » Cod sursa (job #2773627) | Cod sursa (job #2311630) | Cod sursa (job #2771241) | Cod sursa (job #1987455) | Cod sursa (job #1164220)
#include <fstream>
using namespace std;
int x[100];
int m[100];
int next[100];
int main()
{
ifstream f("scmax.in");
ofstream g("scmax.out");
int n,i,j,smax=-1,poz,d=0;
f>>n;
for (i=1;i<=n;i++)
{
f>>x[i];
if (x[i-1]==x[i]) d++;
}
for (i=n;i>=1;i--)
{
m[i]=1;
next[i]=-1;
for (j=i+1;j<=n;j++)
if (x[i] <= x[j]&& m[i]<=m[j]) {m[i]=m[j]+1;next[i]=j;}
}
for (i=1;i<=n;i++)
if (smax<m[i]) {smax=m[i];poz=i;}
g<<smax-d<<'\n'<<x[poz]<<" ";
for (i=2;i<=smax;i++)
if (x[poz]!=x[next[poz]]) {poz=next[poz];g<<x[poz]<<" ";}
else poz++;
g<<'\n';
f.close();
g.close();
return 0;
}