Guest User

Untitled

a guest
Jun 21st, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.71 KB | None | 0 0
  1. #include <string>
  2. #include <iostream>
  3. using namespace std;
  4. const int N = 16000;
  5. string palabras[N];
  6. int peso[N];
  7.  
  8. int maximo=0;
  9.  
  10. int palabra_un_paso(const string &s1, const string &s2)
  11. {
  12. int N1 = s1.size();
  13. int N2 = s2.size();
  14. int i,j,z;
  15. bool termine=false;
  16.  
  17. if((N1==N2+1)||(N2==N1+1)||(N2==N1)){
  18. if(N1==N2){
  19. j=0;
  20. for(i=0;i<N1;i++){
  21. if(!(s1[i]==s2[i]))
  22. j++;
  23. if(j>1||(j==0&&i==N1-1))
  24. return -1;
  25. }
  26. }else{
  27. if(N1==N2+1){ // n1 es mas grande ¡¡¡
  28. i=0;
  29. j=0;
  30. z=0;
  31. while(!termine){
  32. if(!(s1[i]==s2[j])){
  33. z++;
  34. if(z<2){
  35. i++;
  36. }else{
  37. /*z >= 2 Difieren en 2 o más caracteres*/
  38. return -1;
  39. }
  40. }else{
  41. if(i==N1){ //estoy en la ultima comparación
  42. return 1;
  43. }
  44. i++;
  45. j++;
  46. }
  47. }
  48. }else{
  49. i=0;
  50. j=0;
  51. z=0;
  52. while(!termine){
  53. if(!(s1[j]==s2[i])){
  54. z++;
  55. if(z<2){
  56. i++;
  57. }else{
  58. /*z >= 2 Difieren en 2 o más caracteres*/
  59. return -1;
  60. }
  61. }else{
  62. if(i==N2){ //estoy en la ultima comparación
  63. return 1;
  64. }
  65. i++;
  66. j++;
  67. }
  68. }
  69. }
  70. }
  71. }else{
  72. return -1;
  73. }
  74.  
  75. return 1;
  76. }
  77.  
  78. int main(){
  79. string aux;
  80. int i=0;
  81. cin>>aux;
  82. while (!cin.eof()) {
  83. palabras[i]=aux;
  84. peso[i] = 1;
  85. for(int j = i-1; j>=0; j--){
  86. if((peso[i] + j + 1 >= maximo) && (peso[j] + 1> peso[i]) && (palabra_un_paso(palabras[i],palabras[j])==1)){
  87. peso[i]=peso[j]+1;
  88. if(peso[i]>maximo){
  89. maximo=peso[i];
  90. break;
  91. }
  92. }
  93. }
  94. i++;
  95. if(maximo > (N - i)) break;
  96. cin>>aux;
  97. }
  98. cout<<maximo<<endl;
  99.  
  100.  
  101. return 0;
  102. }
Add Comment
Please, Sign In to add comment