首页 > 代码库 > 迷失的邮票

迷失的邮票

描述

L不但喜欢收集邮票,而且还喜欢成对的收集每一种邮票。为了防止混乱,他用一个正整数对每一种邮票进行编号。然而,有一天他却丢失了某两张邮票。已知这两张邮票属于不同的类型,即它们的编号不一样。L希望你能帮他找到这两张丢失邮票的编号。

输入

每个测试数据的输入第一行是一个正整数n(4<=n<=1000000),表示原来L拥有邮票的张数接下去有n-2行,每一行一个正整数x(1<=x<=2^31-1),表示邮票的编号。

输出

每个测试数据的输出只有一行,两个正整数,表示丢失邮票的编号,小的编号在前,两个整数之间用一个空格分开。

样例输入

6
101
2
100
2

样例输出

100 101


#include <iostream>
#include <algorithm>
#include <stdio.h>
using namespace std;
long long  a[1000005],x[5];
int main()
{
    long long n,j,t;
    while(~scanf("%I64d",&n))
    {
        j=0;
        for(int i=0;i<n-2;i++)
            scanf("%I64d",&a[i]);
        sort(a,a+n-2);
        for(int i=0;i<n-3;)
        {
            t=0;
            if(a[i]!=a[i+1])
            {
                if(i!=0){
                    x[j++]=a[i];
                    i++;
                    t=1;
                }
                else
                {
                    x[j++]=a[i];
                    i++;
                    t=1;
                }
            }
            if(!t)i+=2;
        }
        if(j==1)x[j]=a[n-3];
        printf("%I64d %I64d\n",x[0],x[1]);
    }
    return 0;
}