Submission

Status:
(PPPPP)(PPPPPPPPPPPPPPP)

Score: 100

User: hmmm

Problemset: Nostalgia v2

Language: cpp

Time: 0.027 second

Submitted On: 2025-01-26 13:34:12

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int a[N*2],st[4*N*2];

inline void bu(int i,int l,int r){
  if(l==r){
    st[i]=a[l];
  }
  else{
    int mid=(l+r)/2;
    bu(i*2,l,mid);
    bu(i*2+1,mid+1,r);
    st[i]=min(st[i*2],st[i*2+1]);
  }
}

inline int qur(int i,int l,int r,int ql,int qr){
  if(ql>r || qr<l) return INT_MAX;
  if(ql<=l && r<=qr) return st[i];
  else{
    int mid=(l+r)/2;
    return min(qur(i*2,l,mid,ql,qr),qur(i*2+1,mid+1,r,ql,qr));
  }
}

int  main(){
	ios::sync_with_stdio(0); cin.tie(0);
	int n;
  cin >> n;
  for(int i=1;i<=n;i++) cin >> a[i];
  for(int i=1;i<=n;i++){
    int x;
    cin >> x;
    a[i]=x-a[i];
//    a[i]+=a[i-1];
//    cout << a[i] << ' ';
  }
  for(int i=1;i<=n;i++){
    a[i+n]=a[i];
  }
  for(int i=1;i<=2*n;i++){
  	a[i]+=a[i-1];
//  	cout << a[i] << ' ';
  }
  int ans=0;
  bu(1,1,2*n);
  for(int i=1;i<=n;i++){
    if(qur(1,1,2*n,i,i+n-1)>=a[i-1]) ans++;
//  	cout << qur(1,1,2*n,i,i+n-2) << ' ' << a[i]<< "\n";
  }
  cout << ans;
}
/*
4 7 5 6
6 4 7 5
  
2 -3 2 -1
  
2 -1 1   0 | 2 -1 1 0     >0
  -3 -1 -2   0              >2
      2  1   3  0          >-1 /
*/