20WA(分类讨论)求助
查看原帖
20WA(分类讨论)求助
1025329
_psycho楼主2023/7/9 16:40

RT

#include<bits/stdc++.h>
using namespace std;
bitset<500>a;
int main(){
	int T;
	cin>>T;
	while(T--){
		long long x;
		cin>>x;
		a=x;
		if(x==1){
			puts("2");
		}
		else if(x==0){
			puts("1");
		}
		else if(a.count()>=3){
			puts("No,Commander");
		}
		else if(a.count()==1){
			cout<<x+1;
		}else{
			for(int i=0;i<60;i++){
				if(a[i]==1&&a[i+1]==0){
					a[i]=0;
					a[i+1]=1;
					long long ans=0;
					for (int i = 0;i <= 60;i ++)
						ans += (1ll<<i) * a[i];
					cout << ans << '\n';
					//					cout<<a<<"\n";
					break;
				}
				if(a[i]==1&&a[i+1]==1){
					a[i]=0;a[i+1]=0;
					a[i+2]=1;
					long long ans=0;
					for (int i = 0;i <= 60;i ++)
						ans += (1ll<<i) * a[i];
					cout << ans << '\n';
					//					cout<<a<<'\n';
					break;
				}
				
				
				
			}	
		}
	}	
	return 0;
}
2023/7/9 16:40
加载中...