不吸氧一分没有,吸了氧满分,氧气是怎么做到的?
#include<bits/stdc++.h>
using namespace std;
int f[5][1005][1005];
int data[1005];
int main(){
memset(f,0x3f,sizeof(f));
for(int i=0;i<=1005;i++){
f[0][i][i]=0;
}
int n,m;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++){
scanf("%d",&data[i]);
}
for(int i=0;i<m;i++){
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
f[0][a][b]=min(f[0][a][b],c+data[b]);
f[0][b][a]=min(f[0][b][a],c+data[a]);
}
for(int k=1;k<=n;k++){
for(int x=1;x<=n;x++){
for(int y=1;y<=n;y++){
f[k%2][x][y]=min(f[(k-1)%2][x][y],f[(k-1)%2][x][k]+f[(k-1)%2][k][y]);
}
}
}
printf("%d",f[n%2][1][n]-data[n]);
return 0;
}