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
*/