题解:P8838 [传智杯 #3 决赛] 面试
前言:本文原创,请勿抄袭。
现在有
接下来会有
请你算出一个序列 -1。
对于所有数据,
首先看数据范围,对于所有数据,
#include<bits/stdc++.h>
using namespace std;
const int maxn=15;
int n,k;
int a[maxn],b[maxn];
bool vis[maxn],flag=0;
int id[maxn];
void dfs(int x){
if(x>k){
if(!flag){
for(int i=1;i<=k;i++){
cout<<id[i]<<" ";
}
}
flag=1;
return ;
}
for(int i=1;i<=n;i++){
if(a[i]>=b[x]&&vis[i]==0){
vis[i]=true;
id[x]=i;
dfs(x+1);
id[x]=0;
vis[i]=0;
}
}
}
int main(){
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=k;i++){
cin>>b[i];
}
dfs(1);
if(flag==0){
cout<<-1;
}
return 0;
}