Codeforces Beta Round #75 (Div. 2)---A. Chips
来源:互联网 发布:接入网络服务商编码 编辑:程序博客网 时间:2024/05/01 10:37
There are n walruses sitting in a circle. All of them are numbered in the clockwise order: the walrus number 2 sits to the left of the walrus number 1, the walrus number 3 sits to the left of the walrus number 2, ..., the walrus number 1 sits to the left of the walrus number n.
The presenter has m chips. The presenter stands in the middle of the circle and starts giving the chips to the walruses starting from walrus number 1 and moving clockwise. The walrus number i gets i chips. If the presenter can't give the current walrus the required number of chips, then the presenter takes the remaining chips and the process ends. Determine by the given n and m how many chips the presenter will get in the end.
The first line contains two integers n and m (1 ≤ n ≤ 50, 1 ≤ m ≤ 104) — the number of walruses and the number of chips correspondingly.
Print the number of chips the presenter ended up with.
4 11
0
17 107
2
3 8
1
In the first sample the presenter gives one chip to the walrus number 1, two chips to the walrus number 2, three chips to the walrus number 3, four chips to the walrus number 4, then again one chip to the walrus number 1. After that the presenter runs out of chips. He can't give anything to the walrus number 2 and the process finishes.
In the third sample the presenter gives one chip to the walrus number 1, two chips to the walrus number 2, three chips to the walrus number 3, then again one chip to the walrus number 1. The presenter has one chip left and he can't give two chips to the walrus number2, that's why the presenter takes the last chip.
解题思路:有1~n依次循环相连,即1 -> 2 -> ... -> n-1 -> n -> 1.现有数m,从依次从1的位置开始,如果m >= 1,则m -= 1.依次i循环移动,直到m < i时,输出m即可。直接判断一下当i是n的倍数时,i = n;否则i = i%n即可。
AC代码:
#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <vector>#include <queue>#include <set>#include <map>#include <string>#include <math.h>#include <stdlib.h>#include <time.h>using namespace std;#define INF 0x7fffffffint main(){ #ifdef sxk freopen("in.txt","r",stdin); #endif int n, m; while(scanf("%d%d", &n, &m)!=EOF) { for(int i=1; ; i++){ if(i%n != 0) i %= n; else i = n; if(m < i){ printf("%d\n", m); break; } m -= i; } } return 0;}
- Codeforces Beta Round #75 (Div. 2)---A. Chips
- Codeforces Round #194 (Div. 2) D. Chips
- Codeforces Beta Round #75 (Div. 2 Only) A题
- Codeforces Beta Round #75 (Div. 1 Only) A题
- Codeforces Beta Round #95 (Div. 2) A B C E
- Codeforces Beta Round #18 (Div. 2 Only)——A
- Codeforces Beta Round #49 (Div. 2)—A
- Codeforces Beta Round #34 (Div. 2) A题解题报告
- Codeforces Beta Round #85 (Div. 2 Only) A题
- Codeforces Beta Round #65 (Div. 2) A题
- Codeforces Beta Round #89 (Div. 2) A题
- Codeforces Beta Round #87 (Div. 2 Only) A题
- Codeforces Beta Round #95 (Div. 2) A题
- Codeforces Beta Round #96 (Div. 2) A题
- Codeforces Beta Round #77 (Div. 2 Only) A题
- Codeforces Beta Round #84 (Div. 2 Only) A题
- Codeforces Beta Round #57 (Div. 2) A题
- Codeforces Beta Round #91 (Div. 2 Only) A题
- ftpclient
- C++成员变量的初始化顺序问题
- CocoaPods安装和使用教程
- 我猜中了开始 也猜中了结局
- 手机通话原理信号流程
- Codeforces Beta Round #75 (Div. 2)---A. Chips
- 区间选点+区间覆盖
- Codeforces Round #275 (Div. 2)
- 面向对象--抽象类
- 第二天
- Ubuntu 14.04 调整屏幕亮度
- ubuntu14.04 自定义创建桌面图标
- Codeforces Round #135 (Div. 2)---A. k-String
- 2014亚洲区域赛西安站总结