求指出问题,没想明白
#include<bits/stdc++.h>
using namespace std;
long long n,m,k,dp[2505][10],u,v,a[2505],ans;
bool f[2505][2505];
int main(){
ios::sync_with_stdio(0);
cin>>n>>m>>k;
for(int i=2;i<=n;++i){
cin>>a[i];
}
for(int i=1;i<=m;++i){
cin>>u>>v;
f[u][v]=1;
f[v][u]=1;
}
for(int i=1;i<=n;++i){
for(int j=0;j<=4;++j){
for(int k=1;k<i;++k){
if(f[k][i]) dp[i][j+1]=max(dp[i][j+1],dp[k][j]);
}
dp[i][j+1]+=a[i];
}
ans=max(ans,dp[i][5]);
}
cout<<ans;
return 0;
}