思路:设ai为第i个宝宝第一次出现的位置,bi是他第二次出现的位置,则bi-ai=i+1;
∑(bi-ai) = 2+3+4+...+n+1=(n+3)*n/2;①
∑(ai+bi) = 1+2+3+...+2*n=(2*n+1)*n;②
②-①得:
2∑ai = (3*n2 -n)/2;
∑ai = (3*n-1)*n/4;
因为ai都为整数,所以 ∑ai也为整数。
所以只要满足(3*n-1)%4==0||n%4==0就是Y,否则是N。
代码:
#include<bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define mem(a,b) memset((a),(b),sizeof(a)) const int INF=0x3f3f3f3f; int main() { int n; while(~scanf("%d",&n)&&n) { if(n%4==0||(3*n-1)%4==0)printf("Y "); else printf("N "); } return 0; }