#include <bits/stdc++.h>
using namespace std;
# define int long long
# define fir first
# define sec second
# define pb push_back
# define endl "\n"
const int cnst = 2e5+5;
bool mutipletestcase = 0;
//bool debug = false;
bool sorting(pair<int, int> a, pair<int, int> b) {
return a.sec > b.sec;
}
void solve() {
int n, q; cin >> n >> q;
int ans = 0;
vector<pair<int, int>> range;
while(q--) {
// cerr << "IN" << endl;
int x; cin >> x;
int num[x+5];
int pre[x+5]; pre[0] = 0;
int suf[x+5]; suf[x+1] = n+1;
for(int i = 1; i<=x; i++) {
cin >> num[i];
pre[i] = pre[i-1]+num[i];
}
int prev = 0;
for(int i = x; i>=1; i--) suf[i] = suf[i+1]-num[i];
for(int i = 1; i<=x; i++) {
if(suf[i] <= pre[i]) range.pb({suf[i], pre[i]});
}
}
sort(range.begin(), range.end(), sorting);
int l = n+2; int r = n+1;
for(auto v: range) {
// cerr << v.fir << " " << v.sec << endl;
if(v.sec < l) {
ans += r-l+1;
r = v.sec;
}
l = min(l, v.fir);
}
ans += r-l+1;
cout << ans << endl;
}
signed main() {
ios_base::sync_with_stdio(false); cin.tie(0);
int t = 1;
if(mutipletestcase) cin >> t;
while(t--) 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... |