両二元グループ差最小最大対数(C++)

1485 ワード

タイトル:
Qさんは今日トイレに行くとき、この問題を思い出しました.n個の数があり、2つの2つが2元グループを構成しています.差が一番小さいのはどのくらいですか.差が一番大きいのは?
説明を入力:
複数のテストデータのセットを入力します.
テストデータのセットごとに:
N-本グループのテストデータはn個数a 1,a 2...an-計算する必要があるデータ保証:1<=N<=10000,0<=ai<=INT_MAX.
出力の説明:
各データのセットについて、2つの数を出力し、1番目の数は差の最小の対数を表し、2番目の数は差の最大の対数を表す.
入力例:
6 45 12 45 32 5 6
出力例:
1 2
#include 
#include 
#include 
using namespace std;
void result(vector &a,int n);

int main()
{
    int num;
    while(cin>>num)
    {
        int temp;
        vector data;
        for(int i=0; i>temp;
            data.push_back(temp);
        }
        result(data,num);
    }
    return 0;
}

void result(vector &a,int n)
{
    if(n<1) return;

    sort(a.begin(),a.end());
    int m1 = 1;
    int m2 = 1;
    for(int i=0; i0; --i)//       
    {
        if(a[i-1]!=a[i])
        {
            break;
        }
        ++m2;
    }
    int maxNum=m1*m2;//            
    int min_temp=a[1]-a[0];
    int minNum=0;
    for(int i=2; i=0&&a[j]==a[i])//         
            {
                ++minNum;
                --j;
            }
        }
    }
    else
    {
        for(int i=1; i