Merge pull request #5 from ToothlessHaveBun/writing

Sync Writing
This commit is contained in:
Frederick Chen 2025-02-14 14:31:45 +08:00 committed by GitHub
commit 95420a17a8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 88 additions and 0 deletions

4
.gitignore vendored
View File

@ -50,3 +50,7 @@ modules.order
Module.symvers
Mkfile.old
dkms.conf
# config
fame.cpp
.cph/

View File

@ -0,0 +1,84 @@
#include <bits/stdc++.h>
#define lo long long
#define INF INT_MAX
#define LLM LONG_LONG_MAX
using namespace std;
const int N = 1e7 + 10;
/*
toothless. #17
@fredcss_dev
*/
int n;
int p;
int c;
int mp[800][805];
int d[805][805];
int mark[805];
const int inf = 9999999;
int res = inf;
signed main()
{
cin >> n >> p >> c;
for (int i = 0; i < p; i++)
{
for (int j = 0; j < p; j++)
{
if (i == j)
{
mp[i][j] = 0;
d[i][j] = 0;
}
else
{
mp[i][j] = inf;
d[i][j] = inf;
}
}
}
for (int i = 0; i < n; i++)
{
int t;
scanf("%d", &t);
mark[t - 1]++;
}
for (int i = 0; i < c; i++)
{
int u;
int v;
int val;
scanf("%d%d%d", &u, &v, &val);
mp[u - 1][v - 1] = val;
mp[v - 1][u - 1] = val;
d[u - 1][v - 1] = val;
d[v - 1][u - 1] = val;
}
for (int k = 0; k < p; k++)
{
for (int i = 0; i < p; i++)
{
for (int j = 0; j < i; j++)
{
if (d[i][j] > d[i][k] + d[k][j])
{
d[i][j] = d[i][k] + d[k][j];
d[j][i] = d[i][j];
}
}
}
}
for (int i = 0; i < p; i++)
{
int sum = 0;
for (int j = 0; j < p; j++)
{
sum += d[i][j] * mark[j];
}
if (res > sum)
res = sum;
}
printf("%d", res);
return 0;
}