Submission #1268305

#TimeUsernameProblemLanguageResultExecution timeMemory
1268305nadeshikoLasers (NOI19_lasers)C++20
0 / 100
47 ms10816 KiB
#include <bits/stdc++.h> using namespace std; struct BIT { long long n; vector<long long>bit; void init(long long _n) { n=_n; bit.assign(n+1,0); } BIT(long long n) { init(n); } void update(long long id,long long val) { for(; id<=n; id+=id&-id) { bit[id]+=val; } } long long get(long long id) { long long sum=0; for(; id>0; id-=id&-id) { sum+=bit[id]; } return sum; } long long query(long long l,long long r) { return get(r)-get(l-1); } }; int main() { long long Len,r; cin>>Len>>r; BIT bit(Len); for(int i=0; i<r; i++) { long long n; cin>>n; vector<long long>a(n); for(int i=0; i<n; i++)cin>>a[i]; vector<long long>pref(n+1,0); vector<long long>suff(n+2,0); for(int i=1; i<=n; i++) { pref[i]=pref[i-1]+a[i-1]; } for(int i=n; i>=1; i--) { suff[i]=suff[i+1]+a[i-1]; } for(int i=1;i<=n;i++){ long long x=Len-pref[i]; long long y=suff[i]; if(x-y>=0){ bit.update(y+1,1); bit.update(x+1,-1); } } } long long ans=0; for(int i=0;i<Len;i++){ if(bit.get(i+1)==0){ ans++; } } cout<<ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...