Advertisement
berinkaq

Untitled

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