欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

CF1619D.New Year‘s Problem

最编程 2024-10-01 07:53:23
...
#include<bits/stdc++.h> using namespace std; const int N = 100010; int T,n,m; int main() { cin>>T; while(T --) { cin>>m>>n; //mins为所有礼物最大满意度的最小值 int ans = 0,min_s = INT_MAX; //存礼物的满意度 vector<vector<int>> p(m,vector<int>(n)); //存每种礼物的最大满意度 vector<int> max_s(n); for(int i=0;i<m;i++) for(int j=0;j<n;j++) { int x; cin>>x; //同种礼物取最大 max_s[j] = max(max_s[j],x); p[i][j] = x; } //所有种礼物的最大心意中的最小 for(int i=0;i<n;i++) min_s = min(min_s,max_s[i]); //说明想在哪买在哪买,直接就是min_s为答案 if(n - 1 >= m) ans = min_s; else { //枚举商店 for(int k=0;k<m;k++) //双指针枚举两个人 for(int i=0;i<n;i++) for(int j=i+1;j<n;j++) //ans为最大的结果 //当前商店买这两种礼物与之前最小再取最小为当前情况结果 ans = max(ans,min({min_s,p[k][i],p[k][j]})); } cout<<ans<<endl; } return 0; }