比赛 4043级NOIP2022欢乐赛4th 评测结果 AWWWW
题目名称 希望小学 最终得分 20
用户昵称 ZRQ 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2022-11-07 22:05:54
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int N=105,INF=0x3f3f3f3f;
int n,b[7],g[7],s[7],mn=INF,ans;
int x[N],y[N];
int k,w[N][N][7];
bool vis[N][N];
char ch;
inline void read(int &x){x=0;ch=getchar();while(ch<48||ch>57)ch=getchar();while(ch>47&&ch<58)x=(x<<3)+(x<<1)+(ch^48),ch=getchar();}
int main()
{
	freopen("hopeschool.in","r",stdin);
	freopen("hopeschool.out","w",stdout);
	memset(w,0x3f,sizeof(w)); 
	read(n);
	for(int i=1;i<=3;++i) read(b[i]);
	for(int i=1;i<=3;++i) read(g[i]);
	for(int i=1;i<=n;++i) read(x[i]);
	for(int i=1;i<=n;++i) read(y[i]);
	read(k);
	for(int i=1,A,B;i<=k;++i)
	{
		read(A),read(B);
		int d1=0,d2=0;
		vis[A][B]=vis[B][A]=1;
		for(int j=1;j<=3;++j) read(s[j]),d1+=s[j]*b[j],d2+=s[j]*g[j];
		w[A][B][1]=d1,w[A][B][2]=d2;
		d1=s[1]*b[1],d2=s[1]*g[1];
		for(int j=2;j<=3;++j) d1+=s[j]*b[5-j],d2+=s[j]*g[5-j];
		w[B][A][1]=d1,w[B][A][2]=d2; 
	}
	for(int k=1;k<=n;++k)
		for(int i=1;i<=n;++i)
		{
			if(!vis[i][k]) continue;
			for(int j=1;j<=n;++j)
			{
				if(!vis[j][k]) continue;
				for(int t=1;t<=2;++t)
					w[i][j][t]=min(w[i][j][t],w[i][k][t]+w[k][j][t]);
			}
		}
	for(int i=1;i<=n;++i)
	{
		int res=0;
		for(int j=1;j<=n;++j)
			if(i!=j)
				 res+=w[j][i][1]*x[j]+w[j][i][2]*y[j];
		if(res<mn) mn=res,ans=i;
	}
	printf("%d\n",ans);
	return 0;
}