Time Limit: 2000MS | Memory Limit: 65536K | 64bit IO Format: %lld & %llu |
Description
Alice bought a lot of pairs of socks yesterday. But when she went home, she found that she has lost one of them. Each sock has a name which contains exactly 7 charaters.
Alice wants to know which sock she has lost. Maybe you can help her.
Input
There are multiple cases. The first line containing an integer n (1 <= n <= 1000000) indicates that Alice bought n pairs of socks. For the following 2*n-1 lines, each line is a string with 7 charaters indicating the name of the socks that Alice took back.
Output
The name of the lost sock.
Sample Input
2 aabcdef bzyxwvu bzyxwvu 4 aqwerty eas fgh aqwerty easdfgh easdfgh aqwerty aqwerty 2 0x0abcd 0ABCDEF 0x0abcd
Sample Output
aabcdef eas fgh 0ABCDEF
Hint
Because of HUGE input, scanf is recommended.
这题一般的解法基本都会超时的,所以不要想暴力解决,刚开学的时候学了个异或运算,没想到竟然也能用上了,呵呵(袜子真的挺好看的!)
代码:
#include<stdio.h>
#include<string.h>
int num[8];
char s[8];
int main()
{
int n,i,k;
while(scanf("%d",&n)!=EOF)
{
getchar();
memset(num,0,sizeof(num));
k=0;
n=n*2-2;
gets(s);
for(i=0;i<7;i++)
{
k=s[i];
num[i]=k;
}
while(n--)
{
gets(s);
for(i=0;i<7;i++)
{
k=s[i];
num[i]=num[i]^k;
}
}
for(k=0;k<7;k++)
printf("%c",num[k]);
printf("\n");
}
return 0;
}