WA#10求调
查看原帖
WA#10求调
803348
Fire_flys楼主2025/7/20 09:28
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
string s;
queue<char> q;
int last=-1;
void get1(int i){
	int x=(s[i+7]-'0')*1+(s[i+6]-'0')*2+(s[i+5]-'0')*4+(s[i+4]-'0')*8+(s[i+3]-'0')*16;
	if(x>25){
		cout<<"Error";
		exit(0);
	}
	q.push((x+'A'));
}
void get2(int i){q.push('#');}
void get3(int i){
	int x=(s[i+7]-'0')*1+(s[i+6]-'0')*2+(s[i+5]-'0')*4+(s[i+4]-'0')*8+(s[i+3]-'0')*16+(s[i+2]-'0')*32+(s[i+1]-'0')*64+(s[i]-'0')*128;
	if(last==-1)last=x;
	else{
		int s=last/2+x/2,res=0;
		if(s==0)q.push('0');
		else{
			while(s>0){
				res=res*10+s%10;
				s=s/10;
			}
			while(res>0){
				q.push(('0'+res%10));
				res/=10;
			}			
		}
		last=-1;
	}
}
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	cin>>s;int n=s.size();
	if(n%8!=0)return puts("Error"),0;
	for(int i=0;i<n;i++){
		if(s[i]!='1'&&s[i]!='0')
		return puts("Error"),0;
	}
	for(int i=0;i<n;i+=8){
		if(last!=-1&&s[i]!='0')return puts("Error"),0; 
		if(s[i]=='1'&&s[i+1]=='0'&&s[i+2]=='1')get1(i); 
		else if(s[i]=='1'&&s[i+1]=='1'&&s[i+2]=='1')get2(i);
		else if(s[i]=='0')get3(i);
		else return puts("Error"),0;
	}
	if(last!=-1)return puts("Error"),0;
	while(q.size()){
		if(q.front()=='#')cout<<" ";
		else cout<<q.front();
		q.pop();
	}
	return 0;
}
2025/7/20 09:28
加载中...