2013年8月11日 星期日

2013/8/11 zj b015 C. 幼稚國王的獎賞

// http://zerojudge.tw/ShowProblem?problemid=b015
#include <iostream>
#include <cstdio>
using namespace std;
bool dp[1048576]; int num[30];
int main()
{
    int n;
    while( scanf("%d", &n) )
    {
        int ans = 0;
        if( n == 0 ) break;
        for(int i = 0; i < n; i++) scanf("%d", &num[i]);
       
        for(int i = 0; i < 1048576; i++) dp[i] = 0;
        dp[0] = 1;
        for(int i = 0; i < n; i++)
        {
            int t = ans;
            for(int j = 0; j <= ans; j++)
            {
                if( dp[j] == 1 )
                {  
                    dp[j^num[i]] = 1;
                    if( (j^num[i]) > t ) t = (j^num[i]);
                }
            }
            ans = t;
        }
        printf("%d\n", ans);
    }
}

沒有留言:

張貼留言