A. Round House
A. Round House
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.
![](http://codeforces.com/predownloaded/e6/5a/e65af471e97813f0c1cba6e28d4be26b9af33a11.png)
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取模,再讨论。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include <iostream> 2 #include<algorithm> 3 #include<cstdio> 4 #include<cmath> 5 using namespace std; 6 7 int main() 8 { 9 int n,a,b; 10 scanf("%d%d%d",&n,&a,&b); 11 if(b>=0){ 12 b %= n; 13 a = (a+b)%n; 14 if(a == 0) printf("%d\n",n); 15 else printf("%d\n",a); 16 } 17 else{ 18 b = abs(b); 19 b %= n; 20 if(b<a) printf("%d\n",a-b); 21 else if(b == a) printf("%d\n",n); 22 else{ 23 printf("%d\n",n-b+a); 24 } 25 } 26 return 0; 27 }