比赛 期末考试1 评测结果 AWTTTTTTTT
题目名称 Communication 最终得分 10
用户昵称 dream 运行时间 8.820 s
代码语言 C++ 内存使用 13.83 MiB
提交时间 2026-02-08 11:13:43
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=500005;
int n;
ll l,r;
ll a[N],b[N],w[N];
ll ans[N];
int c[N],d[N];
void f(){
	ll sum=w[1];
	for(int i=2;i<=n;i++){
		int x=c[i-1],y=c[i];
		if(a[x]+b[y]<l||a[x]+b[y]>r) return;
		sum+=w[y];
		ans[y]=min(ans[y],sum);
	}
}
void dfs(int x){
	if(x>n){
		f();
		return;
	}
	for(int i=1;i<=n;i++){
		if(!d[i]){
			d[i]=1;
			c[x]=i;
			dfs(x+1);
			d[i]=0;
		}
	}
}
int main(){
	freopen("tioj_communication.in","r",stdin);
	freopen("tioj_communication.out","w",stdout);
    ios::sync_with_stdio(0);
    cin.tie(0);
    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];
    memset(ans,0x3f,sizeof(ans));
    ans[1]=w[1];
    c[1]=1,d[1]=1;
    dfs(2);
    for(int i=1;i<=n;i++){
    	cout<<ans[i]<<" ";
	}
	return 0;
}