Pagini recente » Cod sursa (job #1979695) | Cod sursa (job #1613255) | Cod sursa (job #1806465) | Cod sursa (job #1230955) | Cod sursa (job #2468913)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int v[100001], x[100001], pozitie, maxim=0, n;
int cautbin(int nr)
{
int st=1, dr=nr, rasp=nr+1, mij, v[100001];
while(st<=dr)
{
mij=(st+dr)/2;
if(v[mij]>nr)
{
dr=mij-1;
rasp=mij;
}
else
{
st=mij+1;
}
}
if(v[rasp-1]==nr)
return rasp-1;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>v[i];
x[1]=1;
x[0]=0;
for(int i=2;i<=n;i++)
{
pozitie=cautbin(v[i]);
x[i+1]=i;
}
for(int i=1;i<=n;i++)
{
if(maxim<x[i])
{
maxim=x[i];
pozitie=i;
}
}
cout<<maxim;
for(int i=1;i<=n;i++)
{
if(pozitie>0)
cout<<x[i]<<" ";
}
return 0;
}