Pagini recente » Cod sursa (job #218289) | Cod sursa (job #2202534) | Cod sursa (job #2109041) | Cod sursa (job #1422721) | Cod sursa (job #2257318)
#include <fstream>
#include <iostream>
#include <algorithm>
using namespace std;
#define zeros(x) (x^(x-1)&x)
ifstream f("scmax.in");
ofstream g("scmax.out");
int n,aib[100001],sol[100001],p,rad,M;
struct element
{
int val;
int ind;
}v[100001];
bool cmp(struct element x,struct element y)
{
return (x.val<y.val);
}
void ad(int x,int val)
{
for(int i=x;i<=n;i+=zeros(i))
aib[i]+=val;
}
int calcul(int x)
{ int sum=0;
for(int i=x;i>0;i-=zeros(i))
sum+=aib[i];
return sum;
}
int main()
{
f>>n;
for(int i=1; i<=n; i++)
{
f>>v[i].val;
v[i].ind=i;
}
sort(v,v+n+1,cmp);
ad(v[1].ind,1);
for(int i=2;i<=n;i++)
{ if(v[i].val!=v[i-1].val)
ad(v[i].ind,1);
M=max(M,calcul(v[i].ind));
}
g<<M;
return 0;
}