출처

  • 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;
}