codeforces 659A 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 bcorresponds 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
题意:1~n个数围成一个圆形,a为起点,b为将要走的步数,b>0则顺时针走b步,b<0逆时针走b步问最后终点是哪个点
#include<stdio.h> #include<string.h> #include<vector> #include<map> #include<queue> #include<stack> #include<cstdio> #include<string> #include<math.h> #include<algorithm> #define LL long long #define PI atan(1.0)*4 #define II __int64 #define DD double #define MAX 10010 #define mod 10003 #define INF 0x3f3f3f3f using namespace std; int main() { int n,m,a,b,i,j; while(scanf("%d%d%d",&n,&a,&b)!=EOF) { // printf("%d\n",-5%3); int sum=0; if(b==0) sum=a; else if(b<0) { b=b%n; if(a+b<=0) sum=n+a+b; else sum=a+b; } else if(b>0) { b=b%n; if(a+b<=n) sum=a+b; else sum=a+b-n; } printf("%d\n",sum); } return 0; }