Wednesday, May 10, 2017

【Zerojudge】d908

Problem here

Solution

DFS
  1. #include <iostream>
  2. #include <memory.h>
  3. using namespace std;
  4. int rat[30][30];
  5. bool visit[30];
  6. int sum;
  7. void solve(int here, int cost){
  8. sum = max(sum, cost);
  9. visit[here] = true;
  10. for(int i = 0; i < 26; i++){
  11. if(visit[i] == false && rat[here][i] != 0){
  12. solve(i, cost+rat[here][i]);
  13. visit[i] = false;
  14. }
  15. }
  16. }
  17. int main(){
  18. char start;
  19. while(cin >> start){
  20. int n;cin >> n;
  21. sum = 0;
  22. memset(rat, 0, sizeof(rat));
  23. memset(visit, false, sizeof(visit));
  24. while(n--){
  25. char a, b;int w;
  26. cin >> a >> b >> w;
  27. rat[a-'A'][b-'A'] = max(rat[a-'A'][b-'A'], w);
  28. }
  29. solve(start-'A', sum);
  30. cout << sum << endl;
  31. }
  32. return 0;
  33. }

No comments:

Post a Comment