Advertisement
berinkaq

Untitled

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