史上最难题目修改代码,谁敢挑战,有十分
查看原帖
史上最难题目修改代码,谁敢挑战,有十分
1047397
a18602930307楼主2024/1/21 16:54
#include<bits/stdc++.h>
using namespace std;
map<string,string> a;
int n,ans;
int main(){
	cin>>n;
	for(int i=0;i<n;i++){
		string a1,b1;
		cin>>a1>>b1;
		if(a1=="string"){
			string a2,b2,aa2,bb2;
			int a22=0,b22=1; 
			for(int i=0;i<b1.size();i++){
				if(b1[i]=='('){
					aa2=a2;
					a22=1;
				}
				if(((b1[i-1]=='"'&&b1[i-2]=='(')||(b1[i-1]=='('&&b1[i]!='"'))&&b1[i]!='"'){
					b22=0;
				}
				if(a22==0)a2+=b1[i];
				if(b22==0)b2+=b1[i];
				if(((b1[i+1]=='"'&&b1[i+2]==')')||(b1[i+1]==')'&&b1[i]!='"'))&&b1[i]!='"'){
					bb2=b2;
					b22=1;
				}
			}
			if(a.find(b2)!=a.end()){
				ans+=a[b2].size();
			    a[a2]=b2;
			}else{
				ans+=b2.size();
			    a[a2]=b2;
			}
		}
		if(a1=="string_view"){
			string a3,b3,aa3,bb3;
			int a33=0,b33=1;
			for(int i=0;i<b1.size();i++){
				if(b1[i]=='('){
					aa3=a3;
					a33=1;
				}if(((b1[i-1]=='"'&&b1[i-2]=='(')||(b1[i-1]=='('&&b1[i]!='"'))&&b1[i]!='"'){
					b33=0;
				}if(a33==0)a3+=b1[i];
				if(b33==0)b3+=b1[i];
				if(((b1[i+1]=='"'&&b1[i+2]==')')||(b1[i+1]==')'&&b1[i]!='"'))&&b1[i]!='"'){
					bb3=b3;
					b33=1;
				}
			}
			if(a.find(b3)!=a.end()){
			    a[a3]=a[b3];
		    }else{
		    	a[a3]=b3;
			}
		}
	}
	cout<<ans;
	return 0;
}
2024/1/21 16:54
加载中...