记录编号 52721 评测结果 AAAAA
题目名称 [HAOI 2005]希望小学 最终得分 100
用户昵称 Gravatarcstdio 是否通过 通过
代码语言 C++ 运行时间 0.001 s
提交时间 2013-02-13 19:36:15 内存使用 0.32 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<iomanip>
#include<cstring>
using namespace std;
const int NSIZE=38;
int leng[NSIZE][NSIZE]={0};
int n;
int bp,bu,bd,gp,gu,gd;//男/女生平/上/下的时间
int boy[NSIZE]={0},girl[NSIZE]={0};//人数
void floyd(void){
	int i,j,k;
	for(k=1;k<=n;k++){
		for(i=1;i<=n;i++){
			for(j=1;j<=n;j++){
				if(leng[i][k]+leng[k][j]<leng[i][j]) leng[i][j]=leng[i][k]+leng[k][j];
			}
		}
	}
}
int count(int x){
	int sum=0;
	for(int i=1;i<=n;i++) sum+=leng[i][x];
	return sum;
}
int main(){
	freopen("hopeschool.in","r",stdin);
	freopen("hopeschool.out","w",stdout);
	scanf("%d%d%d%d%d%d%d",&n,&bp,&bu,&bd,&gp,&gu,&gd);
	int i,j;
	for(i=1;i<=n;i++){
		for(j=1;j<=n;j++){
			if(i==j) continue;
			leng[i][j]=0xffffff;
		}
	}
	for(i=1;i<=n;i++) scanf("%d",&boy[i]);
	for(i=1;i<=n;i++) scanf("%d",&girl[i]);
	int m;//道路数
	int a,b,ping,up,down;//对应道路的5个参数
	scanf("%d",&m);
	int temp;
	for(i=1;i<=m;i++){
		scanf("%d%d%d%d%d",&a,&b,&ping,&up,&down);
		temp=boy[a]*(bp*ping+bu*up+bd*down)+girl[a]*(gp*ping+gu*up+gd*down);
		leng[a][b]=temp;
		temp=boy[b]*(bp*ping+bu*down+bd*up)+girl[b]*(gp*ping+gu*down+gd*up);
		leng[b][a]=temp;
	}
	floyd();
	int min=0xffffff,ans=0;
	for(i=1;i<=n;i++){
		temp=count(i);
		if(temp<min){
			min=temp;
			ans=i;
		}
	}
	printf("%d\n",ans);
	return 0;
}