53 lines
1.0 KiB
C
53 lines
1.0 KiB
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
void solve(int *arr, int n, int k) {
|
|
int *temparr = calloc(n, sizeof(int));
|
|
if (temparr == NULL) {
|
|
fprintf(stderr, "Memory allocation failed\n");
|
|
return;
|
|
}
|
|
int cnt_longlive = 0;
|
|
int cnt;
|
|
int idx = -1;
|
|
for (int i = 0; i < n; i++) {
|
|
cnt = 0;
|
|
while (cnt < k) {
|
|
idx = (idx + 1) % n;
|
|
if (temparr[idx] == 0) {
|
|
cnt++;
|
|
}
|
|
}
|
|
temparr[idx] = 1;
|
|
arr[cnt_longlive++] = idx + 1;
|
|
}
|
|
free(temparr);
|
|
}
|
|
|
|
void print_result(int *arr, int n) {
|
|
printf("<");
|
|
for (int i = 0; i < n; i++) {
|
|
printf("%d", arr[i]);
|
|
if (i != n - 1) {
|
|
printf(", ");
|
|
}
|
|
}
|
|
printf(">\n");
|
|
}
|
|
|
|
int main() {
|
|
int n, k;
|
|
|
|
scanf("%d %d", &n, &k);
|
|
|
|
int *arr = calloc(n, sizeof(int));
|
|
if (arr == NULL) {
|
|
fprintf(stderr, "Memory allocation failed\n");
|
|
return 1;
|
|
}
|
|
|
|
solve(arr, n, k);
|
|
print_result(arr, n);
|
|
free(arr);
|
|
return 0;
|
|
} |