Pagini recente » Cod sursa (job #38150) | Cod sursa (job #37729) | Cod sursa (job #3147444) | Cod sursa (job #2120179) | Cod sursa (job #2085164)
#include <cstdio>
using namespace std;
int n,v[100003],best[100003];
FILE * f1 = fopen("scmax.in","r");
FILE * f2 = fopen("scmax.out","w");
void Read()
{
fscanf(f1,"%i",&n);
for(int i=1;i<=n;i++)
fscanf(f1,"%i",&v[i]);
}
void Subsir()
{
int max=-1,dubluri = 0;
best[1] = 0;
for(int i=2;i<=n;i++)
{
if(v[i] != v[i-1])
{
if(v[i] > v[i-1])
best[i] = best[i-1] + 1;
if(v[i] < v[i-1])
best[i] = 0;
}
else
{
best[i] = best[i-1];
dubluri ++;
}
}
for(int i=1;i<=n;i++)
{
if(max < best[i])
{
max = i;
}
}
fprintf(f2,"%i\n",best[max]+1);
for(int i=max-best[max]-dubluri;i<=max;i++)
{
if(v[i] != v[i-1])
fprintf(f2,"%i ",v[i]);
}
}
int main()
{
Read();
for(int i=1;i<=n;i++)
best[i] = 0;
Subsir();
return 0;
}