rt
蒟蒻调了一个多小时没调出来
#include<bits/stdc++.h>
using namespace std;
long long ans,n,q,k,p;
long long w[114],s[114];
int main()
{
int res=0;
cin>>n>>q;
while(n)
{
res++;
w[res]=n%2;
n/=2;
}
s[0]=1;
s[1]=2;
for(int i=2;i<=40;i++)
s[i]=s[i-1]*2;
while(q--)
{
cin>>k;
if(w[k]!=1)
{
for(int i=1;i<k;i++)
if(w[i]==2)
{
w[i]=0;
w[i+1]++;
}
else if(w[i]==1)
{
ans+=s[i-1];
w[i]=0;
w[i+1]++;
}
else if(w[i]==0)
{
ans+=s[i];
w[i+1]++;
}
//cout<<ans<<endl;
}
}
cout<<ans;
return 0;
}
QwQ