#include<bits/stdc++.h>
#define ll long long
#pragma GCC optimize(2)
#define un unsigned
#define int long long
#define db double
#define inf 1000000000000000
#define st string
#define ct const
#define xh(a,b,c) for(int a=b;a<=c;a++)
#define wx while(1)
#define dn(a,b,c) for(int a=b;a>=c;a--)
using namespace std;
st s1,s2;
int min(int x,int y){
	return x<y?x:y;
}
string dfs(string s1,string s2){
	if(s1.empty())return "";
	int t=s1.find(s2[s2.size()-1]);
	string str1,str2,s3,s4;
	str1=str2=s3=s4="";
	str1=s1.substr(0,t);
	str2=s2.substr(0,t);
	xh(i,t+1,s1.size()-1)s3+=s1[i];
	s4=s2.substr(t,s2.size()-t-1);
	return s2[s2.size()-1]+dfs(str1,str2)+dfs(s3,s4);
}
signed main(){
	cin>>s1>>s2;
	cout<<dfs(s1,s2);
	return 0;
}

1 条评论

  • @ 2025-11-30 21:03:54

    注意 有AC了一体

    #include<bits/stdc++.h>
    #define ll long long
    #pragma GCC optimize(2)
    #define un unsigned
    #define int long long
    #define db double
    #define inf 1000000000000000
    #define st string
    #define ct const
    #define xh(a,b,c) for(int a=b;a<=c;a++)
    #define wx while(1)
    #define dn(a,b,c) for(int a=b;a>=c;a--)
    using namespace std;
    int n,a[100010],b[100010],ans;
    void qsort(int left,int right){
    	int mid=(left+right)/2;
    	if(left>=right)return ;
    	int k=left,i=left,j=mid+1;
    	qsort(left,mid);
    	qsort(mid+1,right);
    	while(i<=mid&&j<=right){
    		if(a[i]<=a[j])b[k++]=a[j++];
    		else ans+=(right-j+1),b[k++]=a[i++];
    	}
    	while(i<=mid)b[k++]=a[i++];
    	while(j<=right)b[k++]=a[j++];
    	xh(i,left,right)a[i]=b[i];
    }
    signed main(){
    	cin>>n;
    	xh(i,1,n)cin>>a[i];
    	qsort(1,n);
    	cout<<ans;
    	return 0;
    }
    
    • 1

    信息

    ID
    83
    时间
    1000ms
    内存
    256MiB
    难度
    1
    标签
    (无)
    递交数
    45
    已通过
    36
    上传者