Pagini recente » Cod sursa (job #2376345) | Cod sursa (job #1562894) | Cod sursa (job #2326721) | Cod sursa (job #112756) | Cod sursa (job #1007395)
#include <fstream>
using namespace std;
ifstream f ("scmax.in");
ofstream g ("scmax.out");
int n,a[100004],s,i,poz[100004],j,best[100004],Max;
int b(int x)
{
int m,st,dr;
st=1;
dr=n;
while (st<=dr)
{
m=(st+dr)/2;
if (a[m]==x)
return m;
else if (a[m]>x)
dr=m-1;
else
st=m+1;
}
return st;
}
int main()
{
f>>n;
for (i=1;i<=n;i++)
f>>a[i];
for (i=1;i<=n;i++)
poz[i]=b(a[i]);
best[1]=a[1];
Max=a[i];
j=1;
for (i=2;i<=n;i++)
{
if (poz[i]<=poz[i-1])
{
if (a[i]>best[j-1])
{
best[j]=a[i];
Max=a[i];
}
}
else if (poz[i]>poz[i-1])
{
j++;
best[j]=a[i];
Max=a[i];
}
}
for (i=1;i<=j;i++)
g<<best[i]<<" ";
return 0;
}