有n个小盆友坐成一圈等着发薯条吃,编号为1-n,每个人发的薯条数为他们的编号,问这么一直发下去最后到某个地方发不下去了的时候剩几根薯条。
因为我们一圈一圈发,而每一圈的薯条数是一定的,故可以直接除以一整圈的薯条数,直接拿余数来模拟(因为这些都被之前的整圈发完了,肯定在最后一圈的时候停下)
代码如下:
#include <cstdio>
#include <string>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
// http://codeforces.com/contest/92
// Chips
int main()
{
int n,m; cin>>n>>m;
int sum=(1+n)*n/2;
m=m%sum;
for(int i=1;i<=n;i++)
{
if(m>=i) m-=i;
else break;
}
cout<<m;
return 0;
}