#include<iostream>
#include<vector>
#include<utility>
#include<algorithm>
#include<cstring>
#include<set>
using namespace std;
pair<int,int> get(int a,int b,int c){
return {b-c+1,a+c-1};
}
set<int> st;
int ep[100007];
int main(){
ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
int l,r,x,tmp;
cin >> l >> r;
while(r--){
vector<int> vec,raw;
vec.push_back(0);
raw.push_back(0);
int x; cin >> x;
int sum=0;
for(int i=1;i<=x;++i){
cin >> tmp;
raw.push_back(tmp);
vec.push_back(tmp);
vec[i]+=vec[i-1];
sum+=tmp;
}
memset(ep,0,sizeof(ep));
for(int i=0;i<x;++i){
if(vec[x-i-1]>=1){
++ep[1];
--ep[vec[x-i-1]+1];
}
pair<int,int> tmp=get(vec[x-i-1]+1,l-sum+vec[x-i],raw[x-i]);
if(tmp.second>=tmp.first){
++ep[tmp.first];
--ep[tmp.second+1];
}
if(l>=l-sum+vec[x-i]+1){
++ep[l-sum+vec[x-i]+1];
--ep[l];
}
}
int tmp=0;
for(int i=1;i<=l;++i){
tmp+=ep[i];
if(tmp==x){
st.insert(i);
}
}
}
cout << st.size();
}
# | 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... |