fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4. #include <math.h>
  5. #include <stdlib.h>
  6. using namespace std;
  7.  
  8. int main() {
  9. string v1,v2;
  10. cin >> v1 >> v2;
  11. int k = v1.length();
  12. vector <vector <string>> Paths(k);
  13. string v_curr[k];
  14.  
  15. for (int i=0; i<k; ++i ) {
  16. v_curr[i]=v1;
  17. Paths[i].push_back(v1);
  18. if (v_curr[i][i] == '0') {v_curr[i][i]='1';}
  19. else {v_curr[i][i]='0';}
  20. Paths[i].push_back(v_curr[i]);
  21. }
  22.  
  23. for (int i=0; i<k; ++i ) {
  24. for (int j=0; j<i; ++j) {
  25. if (v_curr[i][j]!=v2[j]) {
  26. v_curr[i][j]=v2[j];
  27. Paths[i].push_back(v_curr[i]);
  28. }
  29. }
  30.  
  31. for (int j=k; j>i; --j) {
  32. if (v_curr[i][j]!=v2[j]) {
  33. v_curr[i][j]=v2[j];
  34. Paths[i].push_back(v_curr[i]);
  35. }
  36. }
  37. if (v_curr[i][i]!=v2[i]) {
  38. v_curr[i][i]=v2[i];
  39. Paths[i].push_back(v_curr[i]);
  40. }
  41. }
  42.  
  43. for (int i=0; i<k; ++i) {
  44. for (int j=0; j<Paths[i].size(); ++j) {
  45. cout <<Paths[i][j]<<" ";
  46. }
  47. cout<<"\n";
  48. }
  49. return 0;
  50. }
Success #stdin #stdout 0s 3476KB
stdin
10111 11010
stdout
10111 00111 00110 00010 01010 11010 
10111 11111 11110 11010 
10111 10011 11011 11010 
10111 10101 11101 11001 11000 11010 
10111 10110 11110 11010