码迷,mamicode.com
首页 > 其他好文 > 详细

九度 1351 只出现一次的数

时间:2014-05-11 20:36:05      阅读:337      评论:0      收藏:0      [点我收藏+]

标签:算法

#include <cstdio>
#include <iostream>
using namespace std;

#ifdef ONLINE_JUDGE                                   
#define FINPUT(file)  0
#define FOUTPUT(file) 0
#else                                                
#define FINPUT(file)  freopen(file,"r",stdin)
#define FOUTPUT(file) freopen(file,"w",stdout)
#endif


int firstNonZeroDigit(int t)
{
    unsigned int flg = 1;
    for(int i=0;i<8*sizeof(t);i++)
    {
        if(flg & t)
            return i;       
        flg = flg << 1;
    }
        return -1;
}

int main()
{

    FINPUT("in.txt");
    FOUTPUT("out.txt");

    int n;
    while(scanf("%d",&n)!=EOF && n)
    {
		int i;
    	int *A = new int[n+1];
    	for(i=0;i<n;i++)
    		scanf("%d",&A[i]);
    	int c = 0;
    	for(i=0;i<n;i++)
    		c ^= A[i];
    	int k = firstNonZeroDigit(c);
    	int c1 = 0, c2 = 0;
    	for(i=0;i<n;i++)
    	{
            int tt = (A[i]>>k);
    		if(tt&1)
    			c1 ^= A[i];
    		else
    			c2 ^= A[i];
    	}
    	if(c1<c2)
    		cout<<c1<<" "<<c2<<endl;
    	else
    		cout<<c2<<" "<<c1<<endl;
    	delete [] A;
    }    

    return 0;
}

九度 1351 只出现一次的数,布布扣,bubuko.com

九度 1351 只出现一次的数

标签:算法

原文地址:http://blog.csdn.net/daringpig/article/details/25535045

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!