VioletaBabel
11866번: 조세퍼스 문제 본문
#include <stdio.h>
#include <string.h>
int main()
{
int n, m, count = 0, dead = 0, arrow = 0;
scanf("%d %d", &n, &m);
int *people = (int *)malloc(sizeof(int)*n);
int *die = (int *)malloc(sizeof(int)*n);
int *answer = (int *)malloc(sizeof(int)*n);
memset(die, 0, sizeof(die));
for (int i = 0; i < n; ++i)
people[i] = i + 1;
while (dead < n)
{
++count;
if (die[arrow] == 1)
--count;
if (count == m)
{
count = 0;
die[arrow] = 1;
answer[dead] = people[arrow];
++dead;
}
arrow = ++arrow % n;
}
printf("<%d", answer[0]);
for (int i = 1; i < n; ++i)
printf(", %d", answer[i]);
printf(">");
}
'백준 > 백준-C' 카테고리의 다른 글
2751번: 수 정렬하기 2 (0) | 2017.05.02 |
---|---|
2750번: 수 정렬하기 (0) | 2017.05.02 |
10845번: 큐 (0) | 2017.04.21 |
9012번: 괄호 (0) | 2017.04.20 |
1874번:스택 수열 (0) | 2017.04.19 |
Comments