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.
Illustration
for n = 6, a = 2, b = - 5.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.
直接模拟正向反向走路,可以一步一步模拟,数据很水,暴力直接过;
#include <stdio.h>
#include <algorithm>
int a[1000005] , b[1000005];
int main() {
int n , m;
int t = 0, k = 0;
scanf("%d%d",&n,&m);
for(int i = 0; i < n; i++) {
scanf("%d",&a[i]);
}
std::sort(a,a+n);
for(int i = 1; ; i++) {
if(i == a[k]) {
k++;
continue;
}
if(m >= i) {
m -= i;
b[t++] = i;
}
else break;
}
printf("%d\n",t);
for(int i = 0; i < t; i++) {
printf("%d ",b[i]);
}
printf("\n");
return 0;
}
圆楼漫步算法题解析
本文介绍了一道关于计算在圆形建筑中漫步最终位置的趣味算法题。通过给出的输入参数,包括楼层数、起始楼层及步行的相对楼层数,文章详细解释了如何确定走完指定步数后所在的楼层。
1046

被折叠的 条评论
为什么被折叠?



