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;
}