#include<iostream> #include<vector> #include<string> #include<algorithm> using namespace std; void update(vector<vector<int>>&p, int start, int end) {     for (int k= 0; k < 5; k++) {         if (p[end][k] != 0) {             p[start][k] = max(p[start][k], p[start][end] + p[end][k]);             update(p, start, k);         }     } } int main() {     int m;     cin >> m;     vector<vector<int>>p(5, vector<int>(5,0));     for (int i = 0; i < m; i++) {         string s;         cin>>s;         for (int j = 1; j < s.length()-1; j+=2) {             if (s[j] > '0'&&s[j] <= '9') {                 p[s[j - 1] - 'A'][s[j + 1] - 'A'] = max(s[j] - '0',p[s[j - 1] - 'A'][s[j + 1] - 'A']);             }         }     }     for (int i = 0; i < 5; i++) {         for (int j = 0; j < 5; j++) {             if (p[i][j] != 0) {                 update(p, i, j);             }                      }              }     int re = 0;     for (int i = 0; i < 5; i++) {         for (int j = 0; j < 5; j++) {             if (p[i][j] >re) {                 re = p[i][j];             }         }     }     bool f = true;     for (int i = 0; i < 5; i++) {         if (p[i][i] != 0) {             f = false;             break;         }     }     if (f) {         cout << re;     }     else {         cout << -1;     }     system("pause"); }
点赞 评论

相关推荐

点赞 评论 收藏
转发
牛客网
牛客企业服务