这道题我这个n^6不到一点的代码也能过,但其实如果出题人真要卡我们的话,30* 29* 28* 27* 26* 25=427,518,000,明显是TLE的
#include<bits/stdc++.h>
using namespace std;
map<string,int> s;
int a[40][40];
int w[40];
int main()
{
int n,m;
scanf("%d%d",&n,&m);
string l;
for (int i=1;i<=n;i++){
cin>>l;
scanf("%d",&w[i]);
s[l]=i;
}
string r;
int sa;
for (int i=1;i<=m;i++){
cin>>l>>r>>sa;
a[s[l]][s[r]]+=sa;
a[s[r]][s[l]]+=sa;
}
int ans=0,maxx=0;
for (int i=1;i<=n;i++){
for (int j=1;j<i;j++){
for (int k=1;k<j;k++){
for (int o=1;o<k;o++){
for (int p=1;p<o;p++){
for (int q=1;q<p;q++){
ans+=w[i]+w[j]+w[k]+w[o]+w[p]+w[q];
ans+=a[i][j]+a[i][k]+a[i][o]+a[i][p]+a[i][q];
ans+=a[j][k]+a[j][o]+a[j][p]+a[j][q];
ans+=a[k][o]+a[k][p]+a[k][q];
ans+=a[o][p]+a[o][q];
ans+=a[p][q];
if (ans>maxx){
maxx=ans;
}
ans=0;
}
}
}
}
}
}
cout<<maxx<<endl;
return 0;
}