#include <bits/stdc++.h>
using namespace std;
int main() {
    int arr[4][5];
    for(int i =0;i<4;i++)
        for(int j =0;j<5;j++)
            cin>>arr[i][j];
    //按列开始处理
    for(int j=0;j<5;j++){
        //求本列最小值,然后置为最小
        int times=2;
        while(times--){
             int nowMin = INT_MAX;
            int tarI,tarJ;
            for(int i = 0;i<4;i++)
                if(arr[i][j]<nowMin && arr[i][j]!=INT_MIN){
                    nowMin = arr[i][j];
                    tarI = i;tarJ=j;
                }
            //出循环后该元素置为最小
            arr[tarI][tarJ]=INT_MIN;
        }
    }
    //输出该矩阵
    int cot = 0;
    vector<int>v;
    int k=2;
    while(k--){
        for(int j =0;j<5;j++)
            for(int i =0;i<4;i++)
                if(arr[i][j]!=INT_MIN){
                    v.push_back(arr[i][j]);
                    arr[i][j] = INT_MIN;
                    break;
                }
    }
    for(int i =0;i<v.size();i++){
        cout<<v[i]<<" ";cot++;
        if(cot==5)cout<<endl;
    }
}
// 64 位输出请用 printf("%lld")

代码比较乱...水多加面,面多加水