WA on #5 求调
查看原帖
WA on #5 求调
801106
liangjiande楼主2025/7/22 16:04

rt

#include<bits/stdc++.h>
#define ll long long
#define bug cout<<"BUG\n"
#define V vector
using namespace std;
const int N=2e5+10;
signed main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	auto Getnum=[&](string s){//将一个字符串转为十进制数
		int ans=0;
		int n=s.size(),ii2=1;
		for(int i=n-1;i>=0;i--,ii2<<=1){
			ans+=(s[i]-'0')*ii2;
		}
		return ans;
	};
	auto GetChar=[&](string s){//将一个01串转为大写字母
		int ans=Getnum(s);
		return (char)('A'+ans);
	};
	string s;
	cin>>s;
	if(s.size()%8!=0){
		cout<<"Error";
		return 0;
	}
	stringstream ans;
	for(int it=0;it<s.size();it+=8){
		bool fl=0;
		for(int j=it;j<it+8;j++){
			if(s[j]!='0'&&s[j]!='1') fl=1;
		}
		if(fl){
			cout<<"Error";
			return 0;
		}
		string l1=s.substr(it,3);
//		cout<<it<<" "<<it+8<<" "<<l1<<"\n";
		if(l1=="101"){
			char lls=GetChar(s.substr(it+3,5));
//			cout<<"Char: "<<lls<<"\n";
			ans<<lls;
		}else if(l1=="111"){
			l1=" ";
//			cout<<"空格\n";
			ans<<l1;
		}else{
			if(s[it]=='0'){
				string l2=s.substr(it,8),l3=s.substr(it+8,8);
//				cout<<"Number String: "<<l2<<" "<<l3<<"\n";
				if(l3[0]!='0'){
					cout<<"Error";
					return 0;
				}
				int k1=Getnum(l2),k2=Getnum(l3);
				k1/=2;k2/=2;
//				cout<<"Number: "<<k1<<" "<<k2<<"\n";
				ans<<to_string(k1+k2);
				it+=8;
			}else{
				cout<<"Error";
				return 0;
			}
		}
	}
	cout<<ans.str();
	return 0;
}

只错了5,记录

2025/7/22 16:04
加载中...