AOJ 0072 - Carden Lantern

Prim法を使って解いた.
辺としてその道の灯篭の数を置いた.
a->bがあれば,b->aもあるんだよ自分.

#include <iostream>
#include <algorithm>
#include <cstdio>
const int INF = 10000000;

int main(){
	int n, m;
	while(std::cin >> n, n){
		std::cin >> m;
		int cost[100][100];
		for(int i=0;i<10000;i++){
			cost[i/100][i%100] = INF;
		}

		for(int i=0;i<m;i++){
			int a, b, d;
			scanf("%d,%d,%d", &a, &b, &d);
			cost[a][b] = d / 100 - 1;
			cost[b][a] = d / 100 - 1;
		}
		int mincost[100];
		bool used[100];
		int res = 0;

		for(int i=0;i<100;i++){
			mincost[i] = INF;
			used[i] = false;
		}
	
		mincost[0] = 0;
		while(1){
			int v = -1;
			for(int u=0;u<n;u++){
				if(!used[u] && (v == -1 || mincost[u] < mincost[v]))
					v = u;
			}
			if(v == -1)break;
			used[v] = true;
			res += mincost[v];

			for(int u=0;u<n;u++){
				mincost[u] = std::min(mincost[u], cost[v][u]);
			}
		}

		std::cout << res << std::endl;
	}
}