출처
- 2022 서강대학교 청정수컵 새내기 Round A번
문제
풀이
현재 차례인 사람 이 모이므로, 모인 사람은 에서 까지의 차이만큼 이동한 위치에 있다.
하지만 사람 번호는 부터 까지이므로 단순 덧셈이 아니라 모듈러를 활용해야 한다.
모듈러 연산은 보통 부터 시작할 때 깔끔하므로, 사람 번호를 부터 시작하는 것으로 생각해보자.
에서 을 빼주면 부터 시작하게 된다. 여기서 은 나중에 더해주면 된다.
이제 만큼 모듈러를 취해주면 된다.
C++에서의 모듈러 연산은 음수를 반환할 수 있으므로, 항상 이상이 되도록 보정해준다.
마지막으로, 사람 번호는 부터 시작하므로 을 더해준다.
코드
#include <iostream>
using namespace std;
void solve(void) {
int n, m, k; cin >> n >> m >> k;
cout << ((m + k - 4) % n + n) % n + 1;
}
int main(void) {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
return 0;
}