// 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<int> r1 , r2 , p1 , p2;
int t;
cin>>t;
r1.push_back(0) , r2.push_back(0);
for(int i = 0; i < t;i++){
int u;
cin>>u;
r1.push_back(u);
}
cin>>t;
for(int i = 0 ; i < t;i++){
int u;
cin>>u;
r2.push_back(u);
}
p1.resize(r1.size()) , p2.resize(r2.size());
for(int i = 1; i < r1.size() ;i++){
p1[i] = r1[i] + p1[i-1];
}
for(int i = 1 ; i < r2.size() ;i++){
p2[i] = r2[i] + p2[i-1];
}
int ans = 0;
for(int i = 1;i<l;i++){
int left = i - 1;
int right= l - i;
auto it1 = upper_bound(p1.begin() , p1.end() , left);
if(it1 == p1.end());
else{
it1--;
int idx = it1 - p1.begin();
int temp = p1.back() - p1[idx];
if(temp > right){
ans++;
continue;
}
}
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... |