第14个点 TLE 算法复杂度在 o(n3) n⩽50
记录
代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,num1=0,num2=0,ans=0,ans1[10005];
scanf("%d",&n);
char a[55],b[55];
scanf("%s%s",a+1,b+1);
for(int i=1;i<=n;i++)
{
num1+=a[i];
num2+=b[i];
}
if(num1!=num2)
{
printf("-1");
return 0;
}
for(int i=1;i<=n;i++)
{
if(a[i]!=b[i])
{
for(int j=1;j<=n;j++)
{
if(a[j]==b[i])
{
for(int k=j;k>i;k--)
{
ans1[ans++]=k-1;
swap(a[k],a[k-1]);
}
}
}
}
}
if(ans>10000)
{
printf("-1");
return 0;
}
printf("%d\n",ans);
for(int i=0;i<ans;i++) printf("%d ",ans1[i]);
return 0;
}