求hack
查看原帖
求hack
1402685
no_name_user楼主2025/7/1 12:50
#include<bits/stdc++.h>
using namespace std;
const long long N=160;
bool check(string s)
{
	if(s.size()==1) return false;
	if(s[0]<'A'||s[0]>'Z') return false;
	for(long long i=1;i<s.size();i++) if(s[i]<'a'||s[i]>'z') return false;
	return true;
}
bool is(char s)
{
	if(s<='Z'&&s>='A') return true;
	if(s<='z'&&s>='a') return true;
	return false;
}
struct node
{
	string word;
	bool cap;
	long long start,end;
}w[N];
int main(){
	string s;
	while(getline(cin,s))
	{
		if(s.size()==0) break;
		long long st=0;
		long long num=0;
		for(long long i=0;i<s.size();i++){
			if(i==0) st=0;
			else if(is(s[i])&&(!is(s[i-1]))) st=i;
			if(is(s[i])){
				w[num].word.push_back(s[i]);
				if((i+1==s.size())||(!is(s[i+1]))){
					w[num].start=st;
					w[num].end=i;
					num++;
				}
			}
		}
		string tmp1;tmp1.clear();
		string tmp2;tmp2.clear();
		string ans;ans.clear();
		long long len=0;st=0;
		long long stat=0;
		for(long long i=0;i<w[0].start;i++){
			ans.push_back(s[i]);
		}
		for(long long i=0;i<num;i++){
			if(stat==0){
				if(check(w[i].word)&&check(w[i+1].word)&&(w[i+1].start-w[i].end==2)&&(s[w[i].end+1]==' ')){
					if(i!=0) for(long long j=w[i-1].end+1;j<w[i].start;j++) ans.push_back(s[j]);
					stat=1;
					tmp1.push_back(w[i].word[0]),tmp2+=w[i].word,tmp2.push_back(' ');
				}
				else{
					for(long long j=w[i-1].end+1;j<w[i].start;j++) ans.push_back(s[j]);
					ans+=w[i].word;
				}
			}
			else if(stat==1){
				if(!(check(w[i].word)&&check(w[i+1].word)&&(w[i+1].start-w[i].end==2)&&(s[w[i].end+1]==' '))){
					stat=0;
					tmp1.push_back(w[i].word[0]),tmp2+=w[i].word,tmp2.push_back(')');
					//ans.push_back(' ');
					ans+=tmp1;
					ans.push_back(' '),ans.push_back('(');
					ans+=tmp2;
					tmp1.clear(),tmp2.clear();
				}
				else{
					tmp1.push_back(w[i].word[0]),tmp2+=w[i].word,tmp2.push_back(' ');
				}
			}
		}
		for(long long i=w[num-1].end+1;i<s.size();i++) ans.push_back(s[i]);
		cout<<ans<<endl;
		for(long long i=0;i<=num;i++){
			w[i].word.clear();
		}
	}
}
2025/7/1 12:50
加载中...