Advertisement
josiftepe

Untitled

Apr 19th, 2021
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.99 KB | None | 0 0
  1. //Blagoja Mladenov
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5.  
  6. int main() {
  7. char *c;
  8. int i;
  9. int j;
  10. c = (char*) malloc(3 * sizeof(char));
  11. int **mat;
  12. mat = (int **)malloc(2000 * sizeof(int *));
  13. for(i = 0; i < 2000; i++) {
  14. *(mat + i) = (int*) malloc(2000 * sizeof(int));
  15. }
  16. int *sz = (int*)malloc(2000 * sizeof(int));
  17. for(i = 0; i < 2000; i++) {
  18. *(sz + i) = 0;
  19. }
  20. int r = 0;
  21. while(1) {
  22. scanf("%s", c);
  23. if(strcmp(c, "END") == 0) {
  24. break;
  25. }
  26. if(strcmp(c, "AFR") == 0) {
  27. int n;
  28. scanf("%d", &n);
  29. int *tmp = (int*) malloc(n * sizeof(int));
  30. for(i = 0; i < n; i++) {
  31. scanf("%d", (tmp + i));
  32. }
  33. int **new = (int**)malloc((r + 1) * sizeof(int*));
  34. for(i = 0; i < r; i++) {
  35. *(new + i + 1) = (int*)malloc((*(sz + i)) * sizeof(int));
  36. for(j = 0; j < *(sz + i); j++) {
  37. *(*(new + i + 1) + j) = *(*(mat + i) + j);
  38. }
  39. }
  40. *(new) = (int*)malloc(n * sizeof(int));
  41. for(i = 0; i < n; i++) {
  42. *(*(new + 0) + i) = *(tmp + i);
  43. }
  44. for(i = r; i >= 0; i--) {
  45. *(sz + i) = *(sz + i - 1);
  46. }
  47. *sz = n;
  48. r++;
  49. for(i = 0; i < r; i++) {
  50. for(j = 0; j < *(sz + i); j++) {
  51. *(*(mat + i) + j) = *(*(new + i) + j);
  52. }
  53. }
  54. free(tmp);
  55. for(i = 0; i < r; i++) {
  56. free(*(new + i));
  57. }
  58. free(new);
  59. }
  60. else if(strcmp(c, "ALR") == 0) {
  61. int n;
  62. scanf("%d", &n);
  63. for(i = 0; i < n; i++) {
  64. scanf("%d", (*(mat + r) + i));
  65. }
  66. *(sz + r) = n;
  67. r++;
  68.  
  69. }
  70. else if(strcmp(c, "DFR") == 0) {
  71. if(r > 0) {
  72. for(i = 0; i < r - 1; i++) {
  73. *(sz + i) = *(sz + i + 1);
  74. for(j = 0; j < *(sz + i); j++) {
  75. *(*(mat + i) + j) = *(*(mat + i + 1) + j);
  76. }
  77. }
  78. r--;
  79. *(sz + r) = 0;
  80. }
  81. }
  82. else if(strcmp(c, "DLR") == 0) {
  83. if(r > 0) {
  84. r--;
  85. *(sz + r) = 0;
  86. }
  87. }
  88. else if(strcmp(c, "PRT") == 0) {
  89. printf("%d\n", r);
  90. for(i = 0; i < r; i++) {
  91. printf("%d ", *(sz + i));
  92. for(j = 0; j < *(sz + i); j++) {
  93. printf("%d ", *(*(mat + i) + j));
  94. }
  95. printf("\n");
  96. }
  97. }
  98. }
  99.  
  100. free(c);
  101. free(sz);
  102. for(i = 0; i < r; i++) {
  103. free(*(mat + i));
  104. }
  105. free(mat);
  106.  
  107. return 0;
  108. }
  109.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement