Pagini recente » Cod sursa (job #2238012) | Cod sursa (job #1349079) | Cod sursa (job #1075928) | Cod sursa (job #831083) | Cod sursa (job #1462394)
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
fstream in("scmax.in", ios::in);
fstream out("scmax.out", ios::out);
#define nmax 100007
int a[nmax],best[nmax]={},pred[nmax]={},i,j,k=1,kpoz=-1,n,maxim=1,maximpoz=-1;
void drum(int);
int main()
{
in>>n;
for(i=0;i<n;i++)
in>>a[i];
best[0]= 1;
pred[0]= -1;
for(i=1;i<n;i++)
if(a[i] > a[i-1])
{
best[i]= best[i-1]+ 1;
k++;
pred[i]= kpoz;
kpoz= i;
if(k > maxim)
{
maxim= k;
maximpoz= kpoz;
}
}
else if(a[i] == a[i-1])
best[i]= best[i-1];
else
{
best[i]= 1;
k= 1;
kpoz= i;
pred[i]= -1;
}
/*
for(i=0;i<n;i++)
cout<< best[i]<< " ";
cout<< "\n";
for(i=0;i<n;i++)
cout<< pred[i]<< " ";
*/
out<< maxim<< "\n";
kpoz= maximpoz;
drum(kpoz);
/*
while(kpoz != -1)
{
out<< a[kpoz]<< " ";
kpoz= pred[kpoz];
}
*/
in.close();
out.close();
return 0;
}
void drum(int i)
{
if(i != -1)
drum(pred[i]);
if(i != -1)
out<<a[i]<<" ";
}