[ACM ] 567 Risk
WA...
麻煩神人給我指教
以下是程式碼,謝謝
#include <stdio.h>
#include <limits.h>
#define MAX_L 20 /* max lands */
long long int min(long long int a,long long int b) {
if( a > b ) return b;
else return a;
}
int main() {
/*freopen("in", "r", stdin);
freopen("out", "w", stdout); //*/
long long int lands[MAX_L][MAX_L];
int i, j, k, l;
int counter = 0;
/* initialize */
for(i=MAX_L-1; i>=0; i--)
for(j=MAX_L-1; j>=0; j--)
lands[i][j] = LONG_MAX;
while( scanf("%d", &k)!=EOF ) {
for(j=k-1; j>=0; j--) {
scanf("%d", &l);
lands[0][l-1] = lands[l-1][0] = 1;
}
for(i=MAX_L-3; i>=0; i--) {
scanf("%d", &k);
for(j=k-1; j>=0; j--) {
scanf("%d", &l);
lands[MAX_L-2-i][l-1] = lands[l-1][MAX_L-2-i] = 1;
}
}
/* Floyd-Warshall */
for(k=MAX_L-1; k>=0; k--)
for(i=MAX_L-1; i>=0; i--)
for(j=MAX_L-1; j>=0; j--)
lands[i][j] = min( lands[i][j], lands[i][k]+lands[k][j] );
/* Floyd-Warshall */
if(counter > 0)
printf("\n");
printf("Test Set #%d\n", ++counter);
scanf("%d", &k);
for(i=k-1; i>=0; i--) {
scanf("%d%d", &j, &l);
printf("%2d to %2d: %lld\n", j, l, lands[j-1][l-1]);
}
/* initialize */
for(i=MAX_L-1; i>=0; i--)
for(j=MAX_L-1; j>=0; j--)
lands[i][j] = LONG_MAX;
}
return 0;
}
--
Johannes Krauser II ◣◣ 殺 ◢◢ ◣ 強暴!強暴!強暴!強暴!強暴!強暴!
GO TO D.M.C 〈◥◣◢◤〉 ◥◣ 強暴!強暴!強暴!強暴!強暴!
デトロイト ハ▇ ▲ ▇ハ ▆▅▄▂▁▂▃▅▆▅
メタル ▏ ハ▄▃▄ハ ▏ ∵ ∵ ◤
▃▄▃ シティ▋ ノ◥ ◤ㄟ ▎ ∴ ◢
▋▊▍ ▏ ◣▂◢ ▏ φjeans1020
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.210.45
推
03/25 10:50, , 1F
03/25 10:50, 1F
→
03/25 11:20, , 2F
03/25 11:20, 2F
→
03/25 11:21, , 3F
03/25 11:21, 3F
推
03/25 11:29, , 4F
03/25 11:29, 4F
→
03/25 11:29, , 5F
03/25 11:29, 5F
→
03/25 11:44, , 6F
03/25 11:44, 6F
→
03/25 11:45, , 7F
03/25 11:45, 7F
推
03/25 17:33, , 8F
03/25 17:33, 8F
→
03/25 17:34, , 9F
03/25 17:34, 9F
→
03/25 17:50, , 10F
03/25 17:50, 10F
→
03/25 17:50, , 11F
03/25 17:50, 11F
推
03/25 20:11, , 12F
03/25 20:11, 12F