小小小模拟求调
  • 板块灌水区
  • 楼主_th_tw_on_
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/10/21 18:54
  • 上次更新2024/10/21 20:14:40
查看原帖
小小小模拟求调
987530
_th_tw_on_楼主2024/10/21 18:54

题目

#include<bits/stdc++.h>
using namespace std;
bool pd(char a){
	if(a>='0'&&a<='9')return 1;
	return 0;
}
int n,d;
string a,A,B,C,in,out;
int main(){
	getline(cin,a);
	if(a.size()==1&&a[0]=='1'){
		n=1;
	}else{
		//d为'.'的位置 
		for(int i=0;i<a.size();i++){
			if(a[i]=='.'){
				d=i;break;
			}
		}
		if(pd(a[d-1])){//编号在主名后(A数.B  C)
			for(int i=0;;i++){
				if(pd(a[i]))break;
				A+=a[i];
			}
			for(int i=0;i<a.size();i++){
				if(pd(a[i]))n=n*10,n+=a[i]-'0';
			}
			for(int i=d+1;;i++){
				if(a[i]==' ')break;
				B+=a[i];
			}
		}else{//编号在拓展名后(A.B数  C)
			for(int i=0;i<d;i++){
				A+=a[i];
			}
			for(int i=d+1;i<a.size();i++){
				if(pd(a[i]))break;
				B+=a[i];
			}
			for(int i=0;i<a.size();i++){
				if(a[i]==' ')break;
				if(pd(a[i]))n=n*10,n+=a[i]-'0';
			}
		}
		for(int i=a.size()-1;;i--)if(a[i]==' ')break;else C+=a[i];
		for(int i=0;i<C.size()/2;i++)swap(C[i],C[C.size()-i-1]);
	}
	while(cin>>in>>out){
		if(a[0]=='0'||a[0]=='1'){
			for(int i=0;i<in.size();i++){
				if(pd(in[i])&&!pd(in[i-1])){
					cout<<n;
				}else if(!pd(in[i])){
					cout<<in[i];
				}
			}
			cout<<" ";
			for(int i=0;i<out.size();i++){
				if(pd(out[i])&&!pd(out[i-1])){
					cout<<n;
				}else if(!pd(out[i])){
					cout<<out[i];
				}
			}
			cout<<endl;n++;
		}else{
			if(pd(a[d-1])){//编号在主名后(A数.B  C)
				cout<<A<<n<<"."<<B<<" "<<A<<n<<"."<<C<<endl;n++;
			}else{//编号在拓展名后(A.B数  C)
				cout<<A<<"."<<B<<n<<" "<<A<<"."<<C<<n<<endl;n++;
			}
		}
	}
	return 0;
}
2024/10/21 18:54
加载中...