| 比赛 |
期末考试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;
}