Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <iomanip>
- using namespace std;
- int* Compress(int* elements, int elements_count, int k)
- {
- int last_pos = 0;
- int new_pos = 0;
- while (last_pos < elements_count)
- {
- if ((last_pos + 1) % k == 0 || elements[last_pos] == 0)
- {
- last_pos++;
- continue;
- }
- elements[new_pos] = elements[last_pos];
- new_pos++;
- last_pos++;
- }
- while (new_pos < elements_count)
- {
- elements[new_pos] = 0;
- ++new_pos;
- }
- return elements;
- }
- void Print(int* elements, int elements_count) {
- for (int i = 0; i < elements_count; ++i)
- {
- cout << setw(2) << elements[i] << ' ';
- }
- cout << '\n';
- }
- int main()
- {
- int k, elements_count;
- cin >> k >> elements_count;
- auto elements = new int[elements_count];
- for (int i = 0; i < elements_count; ++i)
- {
- cin >> elements[i];
- }
- Print(elements, elements_count);
- elements = Compress(elements, elements_count, k);
- Print(elements, elements_count);
- delete[] elements;
- }
- /*
- test1
- 3
- 10
- 1 2 3 4 5 6 7 8 9 10
- 1 2 4 5 7 8 10 0 0 0
- test2
- 2
- 10
- 1 2 3 4 5 6 7 8 9 10
- 1 3 5 7 9 0 0 0 0 0
- test1
- 1
- 10
- 1 2 3 4 5 6 7 8 9 10
- 0 0 0 0 0 0 0 0 0 0
- test4
- 5
- 3
- 1 2 3
- 1 2 3
- test5
- 5
- 0
- test6
- 3
- 10
- 0 1 2 3 4 0 6 7 8 9
- 1 3 4 6 7 9 0 0 0 0
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement