代码如下,测试数据都通过了,为什么到POJ上交的时候总是Wrong Answer?

#include <iostream>
using namespace std;

int main()
{
    int m,n;
    int num[50000][2];
    int show[50000][2];
    int a;
    cin>>a;

    int count=0;
    int temp=0;
    for(int i=0;i<a;i++)
    {
        cin>>m>>n;

        num[i][0] = m<n?m:n;
        num[i][1] = m>n?m:n;
    }

    for( int x=0;x<a;x++ )
    {
        for( int i=x+1;i<a;i++ )
        {
            if( num[i][0]<=num[x][1] && num[i][1]>=num[x][0] )
            {
                num[i][0] = num[x][0] = (num[x][0]<num[i][0])?num[x][0]:num[i][0];
                num[i][1] = num[x][1] = (num[i][1]>num[x][1])?num[i][1]:num[x][1]; 
            }
        }
    }
    int y=0;

    show[temp][0]=num[y][0];
    show[temp][1]=num[y][1];
    y++;
    count++;

    while(y<a)
    {
        int c=0;
        int k;
        while(c<=temp)
        {
            if( show[c][0] != num[y][0] )
                k=1;
            else
            {k=0;break;}
            c++;
        }
        if( k == 1 )
        {
            temp++;
            show[temp][0]=num[y][0];
            show[temp][1]=num[y][1];
            count++;
        }
        y++;
    }

    int z,tem0,tem1;
    for(int i=0;i<count;i++)
    {
        z=count;
        while(z-2>=0)
        {
            if(show[z-1][0]<show[z-2][0])
            {    
            tem0=show[z-2][0];
            tem1=show[z-2][1];
            show[z-2][0]=show[z-1][0];
            show[z-2][1]=show[z-1][1];
            show[z-1][0]=tem0;
            show[z-1][1]=tem1;
            z--;
            }
            else
                z--;
        }
    }

    for( int i=0;i<count;i++)
    {
        cout<<show[i][0]<<" "<<show[i][1]<<endl;
    }

    return 0;

}