viewing paste Unknown #49005 | C++

Posted on the
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
#include<cstdio>
#include<cstring>
const int maxn = 200005;
int a[maxn];
int b[maxn];
bool isodd(long a, long b)
{
    if((a&b)==b) return true;
    else return  false;
}
int main()
{
    int t ;
    scanf("%d", &t);
    for(int i = 1; i <= t; i ++)
    {
        memset(b,0,sizeof(b));
 
        int n,m;
        scanf("%d%d",&n,&m);
        for(int j = 1; j <= n; j ++)
        {
            scanf("%d", &a[j]);
        }
        for(int j = n; j >= 1; j --)
        {
            if(isodd(n + m - 1 - j, m - 1))
            {
 
                for(int k = n; k >= n - j + 1; k --)
                {
                    b[k]^=a[k + j - n];
                }
            }
        }
        for(int k = 1; k <= n; k ++)
        {
            if(k == 1)
            {
                printf("%d",b[k]);
            }
            else printf(" %d",b[k]);
        }
        printf("\n");
 
    }
}
 
 
Viewed 1187 times, submitted by ACGoxy.