过不了编译。
代码↓
#include<bits/stdc++.h>
#define ns "-1"
#define fs(i,x,y,z) for(register iii i=x;i<=y;i+=z)
#define ft(i,x,y,z) for(register iii i=x;i>=y;i+=z)
#define iii unsigned long long
using namespace std;
const int N=100001,inf=0x3f3f3f3f;
inline iii read(){
iii date=0,w=1;char c=0;
while(c<'0'||c>'9'){if(c=='-')w=-1;c=getchar();}
while(c>='0'&&c<='9'){date=date*10+c-'0';c=getchar();}
return date*w;
}
inline iii pass(iii n,iii p,iii r=2){//n第p位改成r
iii q=0,w=0,s=n,ss=n;//q左边的r右边的
fs(i,0,p-2,1){
w+=(n&1llu)<<iii(i-1);
n>>=1llu;
printf("%llu ",w);
}
if(r==2){
return n&1llu;
}
else{
s=ss-w-(n&1llu);
printf("%llu %llu ",s,((n&1llu)^1llu)<<iii(p-1));
if(r!=3) s+=r<<iii(p-1);
else s+=iii(((n&1llu)^1llu)<<iii(p-1));
s+=w;
printf("%llu\n",s);
return s;
}
}
inline void qqq(iii x){
fs(i,1,63,1){
printf("%llu",x&1llu);x>>=1llu;
}
puts("");
}
int main(){
iii q=read(),k=read();
while(q--){
iii p=read(),t=read(),ans;
if(p==4){
ans=pass(k,t);
}else if(p==3){
ans=pass(k,t,3);k=ans;
}else if(p==2){
ans=pass(k,t,0);k=ans;
}else if(p==1){
ans=pass(k,t,1);k=ans;
}
qqq(k);
//printf("%llu\n",);
}
return 0;
}