void find_discord_couple(int* data, int count, int& x, int& y)

{

    for(int i = 1; i < count; ++i)

    {

        if(data[i] - data[0] > y - x)

        {

            y = data[i];

            x = data[0];

        }

    }

    if (count > 2) find_discord_couple(data + 1, count - 1, x, y);

}


int main(void)

{

    int data[] = { 6, 15, 9, 7, 20, 3, 5, 19, 1, 12, };

    int x, y;

    find_discord_couple(data, sizeof(data) / sizeof(data[0]), x = data[0], y = data[1]);

    cout << "x = " << x << " y = " << y << endl;

    return 0;

}





또 다른 방법. 재귀 숙제인데 for 쓰는게 웃겨서


void find_discord_forward(int* data, int count, int right, int& x, int& y)

{

    if(data[right] - data[0] > y - x)

    {

        y = data[right];

        x = data[0];

    }

    if(right < count - 1) find_discord_forward(data, count, right + 1, x, y);

    if(count > 2 && right == 1) find_discord_forward(data + 1, count - 1, 1, x, y);

}


int main(void)

{

    int data[] = { 6, 15, 9, 7, 20, 3, 5, 19, 1, 12, };

    int x, y;

    find_discord_forward(data, sizeof(data) / sizeof(data[0]), 1, x = data[0], y = data[1]);

    cout << "x = " << x << " y = " << y << endl;

    return 0;

}