记录编号 577517 评测结果 AAAAA
题目名称 [HAOI 2005]希望小学 最终得分 100
用户昵称 GravatarHeSn 是否通过 通过
代码语言 C++ 运行时间 0.000 s
提交时间 2022-11-07 22:14:44 内存使用 0.00 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n, m, spd[5][5], a[50], b[50], g[2][50][50], ans, num;
signed main() {
	freopen("hopeschool.in", "r", stdin);
	freopen("hopeschool.out", "w", stdout);
	cin >> n >> spd[1][1] >> spd[1][2] >> spd[1][3] >> spd[2][1] >> spd[2][2] >> spd[2][3];
	for(int i = 1; i <= n; i ++) {
		cin >> a[i];
	}
	for(int i = 1; i <= n; i ++) {
		cin >> b[i];
	}
	cin >> m;
	memset(g, 0x3f, sizeof(g));
	for(int i = 1; i <= m; i ++) {
		int x, y, s1, s2, s3;
		cin >> x >> y >> s1 >> s2 >> s3;
		g[0][x][y] = a[x] * s1 * spd[1][1] + a[x] * s2 * spd[1][2] + a[x] * s3 * spd[1][3];
		g[1][x][y] = b[x] * s1 * spd[2][1] + b[x] * s2 * spd[2][2] + b[x] * s3 * spd[2][3];
		
		g[0][y][x] = a[y] * s1 * spd[1][1] + a[y] * s3 * spd[1][2] + a[y] * s2 * spd[1][3];
		g[1][y][x] = b[y] * s1 * spd[2][1] + b[y] * s3 * spd[2][2] + b[y] * s2 * spd[2][3];
	}
	for(int i = 1; i <= n; i ++) {
		g[0][i][i] = g[1][i][i] = 0;
	}
	for(int k = 1; k <= n; k ++) {
		for(int i = 1; i <= n; i ++) {
			for(int j = 1; j <= n; j ++) {
				g[0][i][j] = min(g[0][i][j], g[0][i][k] + g[0][k][j]);
				g[1][i][j] = min(g[1][i][j], g[1][i][k] + g[1][k][j]);
			}
		}
	}
	ans = 1e8;
	for(int i = 1; i <= n; i ++) {
		int sum = 0;
		for(int j = 1; j <= n; j ++) {
			sum += g[0][j][i] + g[1][j][i];
		}
		if(sum < ans) {
			ans = sum;
			num = i;
		}
	}
	cout << num;
	return 0;
}