fork download
  1. #include <iostream>
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4.  
  5. int main() {
  6. // your code goes here
  7. string s1,s2;
  8. cin>>s1>>s2;
  9.  
  10. int rr1=0;
  11. int rr2=0;
  12. int ww1=0;
  13. int ww2=0;
  14. int q1=0;
  15. int q2=0;
  16.  
  17. int ans=0;
  18.  
  19.  
  20. int n = s1.size();
  21. for(int i=0;i<n;i++){
  22. if(s1[i]=='R'){
  23. if(s2[i]=='R'){
  24. cout<<-1<<endl;
  25. return 0;
  26. }
  27. rr1++;
  28. }
  29. else if(s1[i]=='W'){
  30. if(s2[i]=='W'){
  31. cout<<-1<<endl;
  32. return 0;
  33. }
  34. ww1++;
  35. }
  36. else{
  37. if(s2[i]=='R'){
  38. s1[i]='W';
  39.  
  40. ww1++;
  41. ans++;
  42.  
  43. }
  44. else if(s2[i]=='W'){
  45. s1[i]='R';
  46. rr1++;
  47. ans++;
  48. }
  49. else{
  50. q1++;
  51. }
  52. }
  53. }
  54.  
  55. for(int i=0;i<n;i++){
  56. if(s2[i]=='R'){
  57. rr2++;
  58. }
  59. else if(s2[i]=='W'){
  60. ww2++;
  61. }
  62. else{
  63. if(s1[i]=='R'){
  64. ww2++;
  65. ans++;
  66. }
  67. else if(s1[i]=='W'){
  68. rr2++;
  69. ans++;
  70. }
  71. else{
  72. q2++;
  73. }
  74. }
  75. }
  76.  
  77. int diff1 = abs(rr1-ww1);
  78. int diff2 = abs(rr2-ww2);
  79. if(q1>=diff1){
  80. ans = ans + diff1;
  81. }
  82. else{
  83. cout<<-1<<endl;
  84. return 0;
  85. }
  86.  
  87. if(q2>=diff2){
  88. ans = ans + diff2;
  89. }
  90. else{
  91. cout<<-1<<endl;
  92. return 0;
  93.  
  94.  
  95. }
  96.  
  97. cout<<ans<<endl;
  98.  
  99. return 0;
  100. }
Success #stdin #stdout 0s 5324KB
stdin
"R?R??"
"??W??"
stdout
5