Submission
Status:
(PPPPP)(PPPPPPPPPPPPPPP)
Score: 100
User: ftm
Problemset: Nostalgia v2
Language: cpp
Time: 0.051 second
Submitted On: 2025-01-12 23:04:22
#include<bits/stdc++.h>
using namespace std;
#define f(i,a,b,c) for(int i=a;i<=b;i+=c)
#define r(i,a,b,c) for(int i=a;i>=b;i-=c)
#define fi first
#define se second
#define pb push_back
using ll=long long int;
using pii=pair<int,int>;
const int N=2e5+4;
const int M=1e9+7;
int a[N],t[4*N];
void build(int i, int l, int r){
if(l==r){
t[i]=a[l];
}
else{
int m=l+r>>1;
build(i<<1,l,m);
build(i<<1|1,m+1,r);
t[i]=min(t[i<<1],t[i<<1|1]);
}
}
int qry(int i, int l, int r, int ql, int qr){
if(r<ql || l>qr) return (int)2e9;
if(ql<=l && r<=qr){
return t[i];
}
int m=l+r>>1;
return min(qry(i<<1,l,m,ql,qr),qry(i<<1|1,m+1,r,ql,qr));
}
int main(){
ios::sync_with_stdio(0); cin.tie(0);
int n;cin>>n;
f(i,1,n,1) cin>>a[i];
f(i,1,n,1){
int x;cin>>x;
a[i]=x-a[i];
}
f(i,1,n,1) a[i+n]=a[i];
f(i,1,2*n,1) a[i]+=a[i-1];
build(1,1,2*n);
int ans=0;
f(i,1,n,1){
if(qry(1,1,2*n,i,i+n-1)>=a[i-1]) ans++;
}
cout<<ans;
}
/*
4
4 7 5 6
6 4 7 5
*/