#include using namespace std; #if __has_include("all.hpp") #include "all.hpp" #else #include #endif using namespace atcoder; //遅延セグ木・区間更新・区間和テンプレ struct S{ long long value; int size; }; using F = long long; S op(S a, S b){ return {a.value+b.value, a.size+b.size}; } //データとデータの演算 S e(){ return {0, 0}; } //初期値(データ) S mapping(F f, S x){ return {(f?x.size-x.value:x.value), x.size}; } //データと演算子の演算 F composition(F f, F g){ return (f+g)%2;} //演算子と演算子の演算 F id(){ return 0; } //初期値(演算子) int main(void){ const int n=1e6+1; int q; cin>>q; vector v(n, {0, 1}); lazy_segtree seg(v); while(q--){ long long i,l,r; cin>>i>>l>>r; int bef=-1; for(int j=1;j<=i;j++){ if(i/j!=bef){ seg.apply(i/j,1); bef=i/j; } if(j*(j+1)>=i){ if(i/j==bef)bef--; seg.apply(0,bef+1,1); break; } } cout<