思路
查看原帖
思路
1020297
liuqishuo楼主2024/4/25 14:38
#include<bits/stdc++.h>
using namespace std;
int a[15],b[15],f[15],n,m,i,vis[15],flag=0;;
void dfs(int x)
{
    if(flag==1)
    {
        return;
    }
    if(x>n)
    {
        for(int i=1;i<=n;i++)
        {
            printf("%d ",f[i]);
        }
        flag=1;
        return;
    }
    for(int i=1;i<=n;i++)
    {
        if(vis[i])
        {
            continue;
        }
        if(b[x]<=a[i])
        {
            vis[i]=1;
            f[x]=i;
            dfs(x+1);
            vis[i]=0;
        }
    }
    return;
}
int main()
{
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&a[i]);
    }
    for(int i=1;i<=m;i++)
    {
        scanf("%d",&b[i]);
    }
    dfs(1);
    if(flag==0)
    {
        printf("-1");
    }
    return 0;
}
2024/4/25 14:38
加载中...