比赛 期末考试1 评测结果 WWWWTTTTTT
题目名称 Communication 最终得分 0
用户昵称 zcx 运行时间 6.634 s
代码语言 C++ 内存使用 6.64 MiB
提交时间 2026-02-08 10:31:34
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int const N=5e5+2;
int n,L,R;
int a[N],b[N],w[N],d[N];
bool vis[N];
void dfs(int num,int goal,int sum){
    if(num==goal && !(goal==num==1&&vis[1]==0)){
        d[goal]=min(d[goal],sum);
        return ;
    } 
    for(int i=1;i<=n;i++){
        if(vis[i]) continue;
        if(a[num]+b[i]>=L&&a[num]+b[i]<=R){
            vis[i]=1;
            dfs(i,goal,sum+w[i]);
            vis[i]=0;
        }
    }
}
int main()
{
    freopen("tioj_communication.in","r",stdin);
    freopen("tioj_communication.out","w",stdout);
    cin>>n>>L>>R;  
    for(int i=1;i<=n;i++) cin>>a[i];
    for(int i=1;i<=n;i++) cin>>b[i];
    for(int i=1;i<=n;i++) cin>>w[i];
    for(int i=1;i<=n;i++){
        d[i]=1e6+3;
        if(i==2) vis[1]=1;
        dfs(1,i,0);
        if(d[i]==1e6+3) cout<<-1<<endl;
        else cout<<d[i]+(i==1? 0:w[1])<<" ";
    } 
    return 0;
}