제출 #1268307

#제출 시각아이디문제언어결과실행 시간메모리
1268307nadeshikoLasers (NOI19_lasers)C++20
0 / 100
48 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; Len--; 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...