比赛 |
20120720 |
评测结果 |
AAWWAWWWWW |
题目名称 |
阻击补给线 |
最终得分 |
30 |
用户昵称 |
Truth.Cirno |
运行时间 |
0.228 s |
代码语言 |
C++ |
内存使用 |
1.72 MiB |
提交时间 |
2012-07-20 08:44:43 |
显示代码纯文本
- #include <cstdio>
- using namespace std;
-
- const int MAXINT=1000000000;
- int ava=0,ptow[501],way[124751],wayright[124751],waynext[124751];
-
- void addway(int x,int y,int right)
- {
- int pos;
- pos=ptow[x];
- if (pos==-1)
- {
- ptow[x]=ava;
- way[ava]=y;
- waynext[ava]=-1;
- wayright[ava++]=right;
- }
- else
- {
- while (waynext[pos]!=-1)
- pos=waynext[pos];
- way[ava]=y;
- waynext[pos]=ava;
- waynext[ava]=-1;
- wayright[ava++]=right;
- }
- }
-
- int cal(int pos)
- {
- int right=0;
- pos=ptow[pos];
- while (pos!=-1)
- {
- right+=wayright[pos];
- pos=waynext[pos];
- }
- return(right);
- }
-
- int main(void)
- {
- freopen("t2bb.in","r",stdin);
- freopen("t2bb.out","w",stdout);
- int i,n,m,x,y,right,temp,minright=MAXINT;
- scanf("%d%d",&n,&m);
- for (i=0;i<n;i++)
- ptow[i]=-1;
- for (i=0;i<m;i++)
- {
- scanf("%d%d%d",&x,&y,&right);
- addway(x,y,right);
- addway(y,x,right);
- }
- for (i=0;i<n;i++)
- {
- temp=cal(i);
- if (minright>temp)
- minright=temp;
- }
- printf("%d\n",minright);
- return(0);
- }