Vasya lives in a round building, whose entrances are numbered sequentially by integers from 1 to n. Entrance n and entrance 1 are adjacent.
Today Vasya got bored and decided to take a walk in the yard. Vasya lives in entrance a and he decided that during his walk he will move around the house b entrances in the direction of increasing numbers (in this order entrance n should be followed by entrance 1). The negative value of b corresponds to moving |b| entrances in the order of decreasing numbers (in this order entrance 1 is followed by entrance n). If b = 0, then Vasya prefers to walk beside his entrance.

Help Vasya to determine the number of the entrance, near which he will be at the end of his walk.
The single line of the input contains three space-separated integers n, a and b (1 ≤ n ≤ 100, 1 ≤ a ≤ n, - 100 ≤ b ≤ 100) — the number of entrances at Vasya's place, the number of his entrance and the length of his walk, respectively.
Print a single integer k (1 ≤ k ≤ n) — the number of the entrance where Vasya will be at the end of his walk.
6 2 -5
3
5 1 3
4
3 2 7
3
The first example is illustrated by the picture in the statements
题意:有 n 个入口围成一个圈,加入你在第 a 个入口,要向编号增大的方向
走 b 个单位(b)或向编号减少的方向走 b 个单位(-b),求最后停在哪个
入口处,给出编号。
思路:直接模拟,求余运算。
代码如下:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
#include <algorithm>
using namespace std;
#define size 120
#define inf 0x3f3f3f3f
int main()
{
#ifdef OFFLINE
freopen("t.txt", "r", stdin);
#endif
int n, m, a, b, k;
while (~scanf("%d%d%d", &n, &a, &b))
{
if (b >= 0)
{
k = a + (b%n);
}
else
{
k = (a - (abs(b) % n) < 0) ? (a - (abs(b) % n) + n) : (a - (abs(b) % n));
}
k = (k%n == 0) ? n : k%n;//注意取余!
printf("%d\n", k);
}
return 0;
}