#include<stdio.h>
int a,b;
int bxmz(int *d,int *e,int f,int g){
int n=0,m,h;
for(;n<a;n++){
if(e[n]){
if(f>n){
h=d[f+a*n-(n+1)*(n+2)/2];
}else if(f<n){
h=d[n+a*f-(f+1)*(f+2)/2];
}else continue;
if(h){
if(b>n){
m=b+a*n-(n+1)*(n+2)/2;
}else if(b<n){
m=n+a*b-(b+1)*(b+2)/2;
}else continue;
if(g+h<d[m]||d[m]==0){
d[m]=g+h;
e[n]=0;
bxmz(d,e,n,g+h);
e[n]=1;
}
}
}
}
}
int main(){
scanf("%d%d",&a,&b);
int c=a*(a-1)/2,d[c],e[a],f[a+1],n=0,m;
for(;n<c;n++){
d[n]=0;
}
for(n=0;n<b;n++){
scanf("%d%d%d",&f[0],&f[1],&f[2]);
if(f[0]>f[1]){
m=f[0];
f[0]=f[1];
f[1]=m;
}
d[f[1]-1-a+a*f[0]-f[0]*(f[0]+1)/2]=f[2];
}
for(n=1,e[0]=0;n<a;n++){
e[n]=1;
}
for(c=n=0,f[0]=1,f[1]=0;f[n];n++){
for(m=0;m<a;m++){
if(e[m]){
if(f[n]>m){
b=d[f[n]+a*m-(m+1)*(m+2)/2];
}else if(f[n]<m){
b=d[m+a*f[n]-(f[n]+1)*(f[n]+2)/2];
}else continue;
if(b){
e[m]=0;
c++;
f[c]=m;
f[c+1]=0;
}
}
}
}
if(n<a){
printf("0");
return 0;
}
for(n=1,e[0]=0;n<a;n++){
e[n]=1;
}
for(n=f[0]=0,m=2;n<a;n++){
for(;m<a;m++){
if(n<m){
c=m+a*n-(n+1)*(n+2)/2;
}else if(m<n){
c=n+a*m-(m+1)*(m+2)/2;
}else continue;
if(d[f[0]]<d[c]){
f[0]=c;
}
}
for(m=0,e[n]=0,b=n;m<a;m++){
if(m==f[0])continue;
if(n<m){
c=d[m+a*n-(n+1)*(n+2)/2];
}else if(m<n){
c=d[n+a*m-(m+1)*(m+2)/2];
}else continue;
if(c){
e[m]=0;
bxmz(d,e,m,c);
e[m]=1;
}
}
f[0]=n-1;
m=1;
e[n]=1;
}
for(n=b=0;n<a;n++){
for(m=0,e[n]=0;m<a;m++){
if(m>n){
c=d[m+a*n-(n+1)*(n+2)/2];
}else if(m<n){
c=d[n+a*m-(m+1)*(m+2)/2];
}else continue;
if(c>e[n]){
e[n]=c;
}
}
if(e[b]>e[n]){
b=n;
}
}
printf("%d %d",b+1,e[b]);
}
7-8 哈利·波特的考试(c语言)
最新推荐文章于 2023-06-08 14:22:05 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)