好久不做题了。。。有种智商被碾压的感觉。。。然后就挑了道水题做做
从低到高遍历一遍就行。
#include<bits/stdc++.h>
using namespace std;
const int MAXN=1010010;
long long a[MAXN];
int main()
{
long long n,x,i,ans;
while(~scanf("%lld",&n))
{
memset(a,0,sizeof(a));
while(n--)
{
scanf("%lld",&x);
a[x]++;
}
ans=0;
for(i=0;i<1010000;i++)
{
if(a[i])
{
a[i+1]+=a[i]>>1;
a[i]&=1;
if(a[i])
ans++;
}
}
printf("%lld\n",ans);
}
}