Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
找不到WA的原因, 哪位帮帮忙看下吧!#include <stdio.h> #include <fstream> #include <iostream> #include <string.h> #define SIZE 31 #define NAME_SIZE 100 using namespace std; int n, m; char name[SIZE][NAME_SIZE]; double edge[SIZE][SIZE]; // bool con = false; double max ( double x, double y ) { return (x > y ? x : y); } void initial () { int i, j; for (i = 0; i < n; i ++) { edge[i][i] = 1.0; for (j = i + 1; j < n; j ++) { edge[i][j] = edge[j][i] = 0; } } } bool floyd () { int i, j, k; for (k = 0; k < n; k ++) { for (i = 0; i < n; i ++) for (j = 0; j < n; j ++) { edge[i][j] = max (edge[i][j], edge[i][k] * edge[k][j]); } for (i = 0; i < n; i ++) { if (edge[i][i] > 1.0) { return true; } } } return false; } int main () { #ifndef ONLINE_JUDGE freopen ("Arbitrage.txt", "r", stdin); #endif int i, j, x, y, c; double vir; char str1[NAME_SIZE], str2[NAME_SIZE]; c = 1; while (cin >> n && n) { printf ("Case %d: ", c); for (i = 0; i < n; i ++) { cin >> name[i]; } initial (); cin >> m; for (i = 0; i < m; i ++) { cin >> str1 >> vir >> str2; for (j = 0; j < n; j ++) { if ( !strcmp (str1, name[j]) ) { x = j; } else if ( !strcmp (str2, name[j]) ) { y = j; } } edge[x][y] = vir; } if ( floyd () ) { printf ("Yes\n"); } else { printf ("No\n"); } c ++; } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator