結果

問題 No.2157 崖
ユーザー eve__fuyuki
提出日時 2024-04-29 23:05:41
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 1,977 bytes
コンパイル時間 2,400 ms
コンパイル使用メモリ 208,336 KB
最終ジャッジ日時 2025-02-21 09:47:05
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 15 WA * 7
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

#include <bits/stdc++.h>
using namespace std;
void fast_io() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
}
int main() {
fast_io();
int n, m;
cin >> n >> m;
vector<vector<int>> d(n, vector<int>(m));
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> d[i][j];
}
sort(d[i].begin(), d[i].end());
}
{
vector<int> dp(n);
dp[0] = 0;
for (int i = 1; i < n; i++) {
dp[i] = lower_bound(d[i].begin(), d[i].end(), d[i - 1][dp[i - 1]]) -
d[i].begin();
if (dp[i] == m) {
cout << -1 << endl;
return 0;
}
}
}
int ng = -1, ok = 1e9;
while (ok - ng > 1) {
int mid = (ok + ng) / 2;
vector<vector<bool>> dp(n, vector<bool>(m));
vector<vector<int>> cum(n, vector<int>(m + 1));
for (int i = 0; i < m; i++) {
dp[0][i] = true;
cum[0][i + 1] = cum[0][i] + d[0][i];
}
for (int i = 1; i < n; i++) {
for (int j = 0; j < m; j++) {
int lb = lower_bound(d[i - 1].begin(), d[i - 1].end(),
d[i][j] - mid) -
d[i - 1].begin();
int ub =
lower_bound(d[i - 1].begin(), d[i - 1].end(), d[i][j] + 1) -
d[i - 1].begin();
if (cum[i - 1][ub] - cum[i - 1][lb] > 0) {
dp[i][j] = true;
}
}
for (int j = 0; j < m; j++) {
cum[i][j + 1] = cum[i][j] + d[i][j];
}
}
bool is_ok = false;
for (int i = 0; i < m; i++) {
if (dp[n - 1][i]) {
is_ok = true;
break;
}
}
if (is_ok) {
ok = mid;
} else {
ng = mid;
}
}
cout << ok << endl;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0