假設所有的2n個數據的位置分別從1~2n標號。
現在假設其中第ai個數據(雙胞胎),和bi。那麼他們的位置則相差i + 1個位置;
同理,那麼所有n組雙胞胎相差的數據sum( bi - ai ) ( i = 1 ......2n ) = 2 + 3 +4 + .........+ n + n + 1 = n ( n + 3 ) / 2 ;
所有位置的和sum( ai + bi ) = ( 1 + 2 *n ) * 2 * n / 2 ;
又因為sum( 2 * ai + bi - ai ) = 2sum( ai ) + sum( bi - ai )
所有推出每個位置的值為sum( ai ) = ( 3 * n - 1 ) * n / 4 ;
因為每個位置的值都是一個非負整數,所有只需要滿足sum(ai) 都是整數
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<bitset>
#include<iomanip>
using namespace std;
int main()
{
int n ;
while( ~scanf( "%d" , &n ) , n )
{
if( n % 4 == 0 || ( 3 * n - 1 ) % 4 == 0 )
printf( "Y\n" ) ;
else
printf( "N\n" ) ;
}
return 0 ;
}