#include "stdio.h" #include "math.h" #include "string.h" struct data { int a; int b; int len; int flag; }; void main() { struct data s[100]; int i,j; int n,e; int w,t; int x,y; int sum; int q; for(q=1;scanf("%d%d",&n,&t)!=EOF;q++) //n个地点,t行 { sum=0; if(n==0&&t==0) break; for(i=0;i<t;i++) { scanf("%d%d%d",&s[i].a,&s[i].b,&s[i].len); s[i].flag=0; } for(i=0;i<t;i++) { for(j=0;j<t&&j!=i;j++) { if(s[i].a==s[j].a&&s[i].b==s[j].b&&s[j].flag==0) { if(s[j].len>s[i].len) s[j].flag=1; //大距离flag=1 else s[i].flag=1; // printf("%d %d %d %d\n",s[i].a,s[i].b,s[i].len,s[i].flag); // printf("%d %d %d %d\n",s[j].a,s[j].b,s[j].len,s[j].flag); } } } /* for(i=0;i<t;i++) { printf("%d %d %d %d\n",s[i].a,s[i].b,s[i].len,s[i].flag); } */ scanf("%d%d",&w,&e); //w行,地点e for(i=0;i<w;i++) { scanf("%d%d",&x,&y); for(j=0;j<t;j++) { if(((s[j].a==x&&s[j].b==y)||(s[j].b==x&&s[j].a==y))&&s[j].flag==0) sum=sum+s[j].len; } } printf("Case #%d: %d\n",q,sum); } } |
Double click to view unformatted code.