Advertisement
Guest User

Untitled

a guest
Sep 19th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <iostream>
  3. #include <vector>
  4. #include <string>
  5. using namespace std;
  6. int main(){
  7. int n;
  8. int m;
  9. cin >> n;
  10. cin >> m;
  11. int matrix[n][n];
  12. for(int i = 0; i < n; i++){
  13. for(int j = 0; j < n; j++){
  14. matrix[i][j] = 0;
  15. }
  16. }
  17. for(int i = 0; i < m; i++){
  18. int p;
  19. string order;
  20. vector<int> used;
  21. cin >> p;
  22. cin >> order;
  23. for(int j = order.size()-1; j >= 0; j--){
  24.  
  25. int index = (int) order[j] - 65;
  26. for(int k = 0; k < used.size(); k++){
  27. matrix[index][used[k]] += p;
  28. }
  29. used.push_back(index);
  30. }
  31. }
  32.  
  33. for(int i = 0; i < n; i++){
  34. vector<int> can_beat;
  35. vector<int> cant_beat;
  36. for(int j = 0; j < n; j++){
  37. if(i == j) continue;
  38. if(matrix[i][j] > matrix[j][i]){
  39. can_beat.push_back(j);
  40. }
  41. else{
  42. cant_beat.push_back(i);
  43. }
  44. }
  45. char cur_letter = (char) i+65;
  46. if(cant_beat.size() == 0){
  47. cout << cur_letter << ": can win" << endl;
  48. break;
  49. }
  50. if(can_beat.size() == 0){
  51. cout << cur_letter << ": can't win" << endl;
  52. break;
  53. }
  54.  
  55. while(true){
  56. vector<int> new_can_beat;
  57. int new_cant_beat;
  58. for(int a = 0; a < can_beat.size(); a++){
  59. for(int b = cant_beat.size()-1; b >= 0; b--){
  60. if(matrix[a][b] > matrix[b][a]){
  61. can_beat.push_back(b);
  62. cant_beat.pop_back();
  63. }
  64. }
  65. }
  66. new_cant_beat = cant_beat.size();
  67. if(new_cant_beat == 0){
  68. cout << cur_letter << ": can win" << endl;
  69. break;
  70. }
  71. if(new_can_beat.size() == 0){
  72. cout << cur_letter << ": can't win" << endl;
  73. break;
  74. }
  75. can_beat.clear();
  76. for(int c = 0; c < new_can_beat.size(); c++){
  77. can_beat.push_back(new_can_beat[c]);
  78. }
  79. }
  80. }
  81. return 0;
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement