Pagini recente » Cod sursa (job #1095928) | Cod sursa (job #2372389) | Cod sursa (job #2532760) | Cod sursa (job #1844010) | Cod sursa (job #1785928)
#include <iostream>
#include <fstream>
using namespace std;
void Citire (int a[100000], int &n)
{
ifstream f("scmax.in");
ofstream g("scmax.out");
f>>n;
for (int i=0; i<n; i++)
f>>a[i];
}
void ConstruireSir (int a[100000], int b[100000], int n, int &maxib,int &maxb2)
{
int maxi=a[n-1],li=1;
b[n-1]=li;
for (int i=n-2; i>=0; i--)
{
if (a[i]<maxi)
{
li++;
b[i]=li;
maxi=a[i];
maxib=i;
maxb2=b[i];
}
else if (a[i]==maxi)
b[i]=li;
else b[i]=1;
}
}
void Afisare (int a[100000],int b[100000],int n,int &maxib)
{
int maxc=maxib,i;
for (i=maxib;i<n;i++)
{
if (a[maxc]<a[i])
{
cout<<a[maxc]<<" ";
maxc=i;
}
}
if (a[maxc]<=a[i-1])
{
cout<<a[maxc]<<" ";
}
}
int main()
{
int a[100000],b[100000]= {0},n,maxib,maxib2;
Citire(a,n);
ConstruireSir(a,b,n,maxib,maxib2);
cout<<maxib2<<endl;
Afisare (a,b,n,maxib);
return 0;
}