#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <queue>
#include <set>
#define rep(i, s, e) for (ll i = s; i < e; i++)
#define upmax(a, b) a = max(a, b)
#define upmin(a, b) a = min(a, b)
using namespace std;
using ll = long long;
using vll = vector<ll>;
using vvll = vector<vll>;
using pll = pair<ll, ll>;
using vpll = vector<pll>;
using vvpll = vector<vpll>;
const ll INF = 1e18;
void solve() {
ll l, n;
cin >> l >> n;
vvll arr(n);
vll x(n);
vll sum(n);
rep(i, 0, n) {
cin >> x[i];
arr[i].resize(x[i]);
rep(j, 0, x[i]) {
cin >> arr[i][j];
sum[i] += arr[i][j];
}
}
set<pair<ll, pll>> sR; // {right, {idx, i}}
ll left = 0; // Max left of all rows
rep(i, 0, n) {
sR.insert({ sum[i], {0, i}});
}
auto temp = --(sR.end());
ll right = (*temp).first;
ll lastLeft = l - right; // [1, a] is good already
ll ans = lastLeft;
left = lastLeft;
while (!sR.empty()) {
/*for (auto& it : sR) {
cout << it.first << ' ' << it.second.first << " " << it.second.second << endl;
}
cout << endl;*/
auto it = --(sR.end());
ll right = (*it).first;
ll idx = (*it).second.first;
ll i = (*it).second.second;
upmax(left, sum[i] - right + arr[i][idx]);
sR.erase(it);
if (idx < x[i] - 1) sR.insert({ right - arr[i][idx], {idx + 1, i} });
if (sR.empty()) {
// [left, l] is good
ans += l - left;
}
else {
auto it2 = --(sR.end());
ll curRight = l - (*it2).first;
if (left < curRight) {
ans += curRight - left;
upmax(left, curRight);
}
}
}
cout << l - ans << endl;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
solve();
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |