元素周期表第51位 • 11天前
using namespace std; int n, m; vector<vector>a;
bool able(int val) {
int last = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < last; j++)
if (a[i][j] < val)
return false;
for (int j = m - 1; j > last; j--)
if (a[i][j] < val) {
last = j;
break;
}
}
return true;
}
int main() {
cin >> n >> m;
for (int i = 1; i <= n; i++) {
vector<int>b;
for (int j = 1; j <= m; j++) {
int val;
cin >> val;
b.push_back(val);
}
a.push_back(b);
}
int left = 1;
int right = n * m, ans = 0;
while (left <= right) {
int mid = (left + right) / 2;
if (able(mid)) {
ans = mid;
left = mid + 1;
} else
right = mid - 1;
}
cout << ans;
return 0;
}
评论:
请先登录,才能进行评论