#include<stdio.h>
#define P(z) for(i=0;i<5;++i)printf("%d ",z[i]);printf("
");
int main(){
int n,i,j,t,a[5],b[5];
while(~scanf("%d",&n)){
while(n--){
scanf("%d%d%d%d%d%d%d%d%d%d",a,a+1,a+2,a+3,a+4,b,b+1,b+2,b+3,b+4);
for(i=0;j=i%5,i<10;++i){
scanf("%d",&t);
if(t>a[j]){
if(a[j]<b[j]){
a[j]=b[j];
b[j]=t;
} else
b[j]=t;
} else if(t>b[j])
b[j]=t;
}
P(a);P(b);
}
}
}
タイトルの説明:
4行5列のマトリクスを入力し、各列の最大数を2つ見つけます.
入力:
入力された最初の行には整数n(1<=n<=1000)が含まれ、次の4行には各行に5つの整数が含まれます.4行5列のマトリクスを表し、マトリクス要素はすべて整数です.
出力:
複数のテストデータのグループがあり、各グループのデータについて、サンプル出力のフォーマットに従って各列の最大2つの数を出力し、最大2つの数のうちの1つがこの列に同じ値が複数ある場合、行値は行値の小さいものを取ります.
出力するときは、元のマトリクスの行列順序を保持します.すなわち、元のマトリクスでは行値が小さく、出力マトリクスでは行値が小さくなります.
サンプル入力:
1
1 2 4 9 8
-1 4 9 8 8
12 9 8 7 0
7 8 9 7 0
サンプル出力:
12 9 9 9 8
7 8 9 8 8