hdu 5971

#include <iostream>
#include <cstdio>
#include <cmath>
#include <string.h>
#include <queue>
#include <stack>
#include <algorithm>
#include <fstream>

#define ll long long
#define INF 0x3f3f3f3f
#define clr(x) memset(x,0,sizeof(x))
#define clr2(x) memset(x,INF,sizeof(x))
#define clr3(x) memset(x,-INF,sizeof(x))
#define clr4(x) memset(x,-1,sizeof(x))
#define pb(x) push_back(x)
//#define debug

using namespace std;
const ll mod=1e9+7;
int a[110];
int res,n,m;

struct S
{
    int len,num;
} sum[23333];
void solve()
{
    scanf("%d",&n);
    for (int i=1; i<=n; i++)
        scanf("%d",&a[i]);
    clr(sum);
    int tot=0;
    for (int i=1; i<=n; i++)
    {
        int tmp=0;
        for (int j=i; j<=n; j++)
        {
            tmp^=a[j];
            sum[tot].num=tmp;
            sum[tot++].len=j-i+1;
        }
    }

    scanf("%d",&m);
    int x;
    for (int q=1; q<=m; q++)
    {
        scanf("%d",&x);
        int minx=INF,tlen;


        for (int i=0; i<tot; i++)
            if (abs(sum[i].num-x)<minx)
            {
                minx=abs(sum[i].num-x);
                tlen=sum[i].len;
            }
            else if (abs(sum[i].num-x)==minx)
                tlen=max(tlen,sum[i].len);

            printf("%d\n",tlen);
    }
    printf("\n");
}
#//define debug
int main()
{
#ifdef debug
    freopen("in.txt","r",stdin);
    freopen("out1.txt","w",stdout);
#endif

    int T;
    scanf("%d",&T);
    while (T--)
        solve();
    return 0;
}
發佈了44 篇原創文章 · 獲贊 3 · 訪問量 7974
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章