Advertisement
berinkaq

Untitled

Apr 9th, 2021
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int f(int *a, int n, int k) {
  4. int l = 0, r = -1;
  5. int curr = 1;
  6. for (int i = 0; i < n; ++i) {
  7. if (i == n - 1) {
  8. if (curr > k) {
  9. for (int j = 0; j < curr; ++j)
  10. a[l++] = a[i];
  11. r = i;
  12. curr = 1;
  13. continue;
  14. }
  15. r = i;
  16. continue;
  17. }
  18.  
  19. if (a[i] == a[i + 1]) {
  20. ++curr;
  21. continue;
  22. }
  23. if (curr > k) {
  24. for (int j = 0; j < curr; ++j)
  25. a[l++] = a[i - 1];
  26. r = i - 1;
  27. curr = 1;
  28. continue;
  29. }
  30. r = i - 1;
  31. curr = 1;
  32. }
  33. //printf("%d %d\n", l, r);
  34. return (r - l) + 1;
  35. }
  36.  
  37. void print_arr(int *a, int n) {
  38. for (int i = 0; i < n; ++i)
  39. printf("%d ", a[i]);
  40. printf("\n");
  41. }
  42.  
  43. int main(void) {
  44. int n = 12;
  45. int k = 3;
  46. int a[] = {1,1,2,2,3,3,4,4,5,5,5,6};
  47. int ans = f(a, n, k);
  48. print_arr(a, n - ans);
  49. printf("%d\n", ans);
  50. return 0;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement