#include using namespace std; #define modulo 1000000007 #define mod(mod_x) ((((long long)mod_x+modulo))%modulo) #define Inf 1000000000000000001 template struct sparse_table{ const T init_value = 0; vector v; int n; int sz; sparse_table(vector &x){ sz = x.size(); for(int i=0;true;i++){ if((1<sz){ n = i; break; } } v.resize(sz*n,init_value); for(int i=0;i>N; vector A(N); for(int i=0;i seg(A); long long ans = 0; for(int i=0;i1)break; int ok = i; int ng = N+1; while(ng-ok>1){ int mid = (ok+ng)/2; if(seg.query(i,mid)==1)ng = mid; else ok=mid; } ans += N+1-ng; } cout<