1. 程式人生 > >EOJ(排序)——4. Nth Largest Value

EOJ(排序)——4. Nth Largest Value

4. Nth Largest Value

For this problem, you will write a program that prints the Nth largest value in a fixed sized array of integers. To make things simple, N will be 3 and the array will always be have 10 decimal integer values.

輸入

The first line of input contains a single integer P, (1≤P≤1000), which is the number of data sets that follow. Each data set consists of a single line containing the data set number, followed by a space, followed by 10 space separated decimal integers whose values are between 1 and 1000 inclusive.

輸出

For each data set, generate one line of output with the following values: The data set number as a decimal integer, a space, and the 3rd largest value of the corresponding 10 integers.

input

4
1 1 2 3 4 5 6 7 8 9 1000
2 338 304 619 95 343 496 489 116 98 127
3 931 240 986 894 826 640 965 833 136 138
4 940 955 364 188 133 254 501 122 768 408

output

1 8
2 489
3 931
4 768

題目大意:

輸入 p行,每行10個元素,求出每一行的第三大的數。

題目解析:

用陣列儲存每一行的資料,用sort函式完成排序。(注意:資料的輸入輸出標有行號)

具體程式碼:

#include<iostream>
#include<algorithm>
using namespace std;

bool cmp(int a,int b){
	return a>b;
}

int main()
{
    int n;
    int A[11];
    cin>>
n; for(int i=1;i<=n;i++){ fill(A,A+11,0); for(int j=0;j<11;j++) cin>>A[j]; sort(A+1,A+11,cmp); cout<<i<<" "<<A[3]<<endl; } return 0; }