// https://static.oj.uz/problem/c014a9e7a8f56bc2f9f572b0bdc08fa0/statement/ddc244fdcd6f2b1a2747c6561b1319e7dff1edb43080c46bffcfc3e9c8b6bb86/statement_en.pdf
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main(){
int l , r;
cin>> l >> r;
vector<vector<int>> rows(r);
vector<vector<int>> p(r);
for(int i = 0; i < r;i++){
int t;
cin>>t;
rows[i].push_back(0);
p[i].push_back(0);
for(int j = 0 ; j < t;j++){
int u;
cin>>u;
rows[i].push_back(u);
p[i].push_back(p[i].back() + u);
}
}
int ans = 0;
for(int i = 1;i<=l;i++){
int left = i - 1;
int right= l - i;
for(int j = 0 ; j < r ; j++){
// for(int k = 0 ; k < rows[i].size() ; k++){
auto it1 = upper_bound(p[j].begin() , p[j].end() , left);
if(it1 == p[j].end());
else{
it1--;
int idx = it1 - p[j].begin();
int temp = p[j].back() - p[j][idx];
if(temp > right){
ans++;
break;
}
}
// }
}
// auto it2 = upper_bound(p2.begin() , p2.end() , left);
// if(it2 == p2.end());
// else{
// it2--;
// int idx = it2 - p2.begin();
// int temp = p2.back() - p2[idx];
// if(temp > right){
// ans++;
// continue;
// }
// }
}
cout<<ans;
}
| # | 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... |