Advertisement
Guest User

Untitled

a guest
Mar 20th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.98 KB | None | 0 0
  1. #include<iostream>
  2. #include<fstream>
  3. using namespace std;
  4. int n; // numarul sirurilor
  5. int D[100]; // vector al lungimilor sirurilor
  6. int M[100][100];// matricea in care memorez sirurile
  7.  
  8. int read_data()
  9. {
  10. fstream f;
  11. f.open("input.dat",ios::in);
  12. f>>n;
  13. for(int i=1;i<=n;i++)
  14. {
  15. f>>D[i];
  16. for(int j=1;j<=D[i];j++)
  17. f>>M[i][j];
  18. }
  19. }
  20.  
  21. int verify_data()
  22. {
  23. for(int i=1;i<=n+1;i++)
  24. { cout<<endl;
  25. for(int j=1;j<=D[i];j++) cout<<M[i][j]<<" ";
  26. }
  27. }
  28.  
  29. int merge_strings(int r1,int r2,int line)
  30. {
  31. // interclasam randul r1 cu randul r2 si depunem
  32. // rezultat in rand n+1
  33. int aux[100];
  34. int i,j,k;
  35. i=1;j=1;k=1;
  36. while ((i<=D[r1])&&(j<=D[r2]))
  37. {
  38. if (M[r1][i]<M[r2][j]) {
  39. aux[k]=M[r1][i];
  40. k=k+1;
  41. i=i+1;
  42. }
  43. else
  44. if (M[r1][i]>M[r2][j]) {
  45. aux[k]=M[r2][j];
  46. k=k+1;
  47. j=j+1;
  48. }
  49. else {
  50. aux[k]=M[r1][i];
  51. aux[k+1]=M[r1][i];
  52. k=k+2;
  53. i=i+1;
  54. j=j+1;
  55. }
  56. }
  57. if ((i<=D[r1])&&(j>D[r2]))
  58. {
  59. for(j=i;j<=D[r1];j++)
  60. {
  61. aux[k]=M[r1][j];
  62. k=k+1;
  63. }
  64. }
  65. else
  66. if ((i>D[r1])&&(j<=D[r2]))
  67. {
  68. for(i=j;i<=D[r2];i++)
  69. {
  70. aux[k]=M[r2][i];
  71. k=k+1;
  72. }
  73. }
  74. D[line]=D[r1]+D[r2];
  75. for(int i=1;i<=D[line];i++)
  76. M[line][i]=aux[i];
  77. }
  78.  
  79. int sort_data()
  80. {
  81. // ordoneaza cele n siruri in ordinea crescatoare a
  82. // lungimilor lor
  83.  
  84. }
  85.  
  86. int merge_data()
  87. {
  88. sort_data();
  89. merge_strings(1,2,n+1);
  90. for(int i=3;i<=n;i++)
  91. merge_strings(i,n+1,n+1);
  92. }
  93.  
  94. int main()
  95. {
  96. read_data();
  97. verify_data();
  98. merge_data();
  99. verify_data();
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement