//GZ-023 易主一 北京师范大学贵阳附属中学 //T1 lucky //1s 512MB //400T #include using namespace std; using i128=__int128; using u128=unsigned __int128; using i64=long long; using u64=unsigned long long; using i32=int; using u32=unsigned int; using i16=short; using u16=unsigned short; using i8=char; using u8=unsigned char; using pii=pair; template inline void read(T& v){ v=0; char c=getchar(); while(c<'0'||c>'9'){ c=getchar(); } while(c>='0'&&c<='9'){ v*=10; v+=c-'0'; c=getchar(); } } template inline void write_(T v){ if(v==0){ return; } write_(v/10); putchar((v%10)+'0'); } template inline void write(T v){ if(v==0){ putchar('0'); return; } write_(v); } template inline void writeln(T v){ write(v); putchar('\n'); } //4MB int al[200010][2];//1e9 int bl[200010][2];//1e9 struct Node; Node* alloc(); struct Node{ Node* child; i64 val[2];//lmax+mid-rmin,rmax+mid-lmin Node(){ }; inline void clear(){ child=NULL; val[0]=0; val[1]=0; } inline void push_down(){ if(child==NULL){ child=alloc(); alloc(); } for(int i=0;i<2;i++){ for(int j=0;j<2;j++){ child[i].val[j]+=val[j]; } } for(int j=0;j<2;j++){ val[j]=0; } } }; //400MB Node pool[17476266]; int pool_top=0; inline Node* alloc(){ pool[pool_top].clear(); return &pool[pool_top++]; } Node* root; const int E9=1000000000; const int E91=E9+1; void range_add_p2(Node* cur,int l,int r,int ql,int qr,int val1,int val2){ if(l>=ql&&r<=qr){ cur->val[0]+=val1; cur->val[1]+=val2; return; } if(l>=qr||r<=ql){ return; } cur->push_down(); int mid=(l+r)>>1; range_add_p2(cur->child,l,mid,ql,qr,val1,val2); range_add_p2(cur->child+1,mid,r,ql,qr,val1,val2); } inline void range_add_p2(int ql,int qr,int val1,int val2){ return range_add_p2(root,0,E91,ql,qr,val1,val2); } i64* get_val(Node* cur,int l,int r,int pos){ if(cur->child==NULL){ return cur->val; } cur->push_down(); int mid=(l+r)>>1; if(pos>=mid){ return get_val(cur->child+1,mid,r,pos); }else{ return get_val(cur->child,l,mid,pos); } } inline i64* get_val(int pos){ return get_val(root,0,E91,pos); } inline bool checkl(int p){ i64* v=get_val(p); return v[0]>=0; } inline bool checkr(int p){ i64* v=get_val(p); return v[1]>0; } //2MB pii arr[200010]; void task(){ int n;//2e5 6e5 read(n); for(int i=1;i<=n;i++){ read(al[i][0]); read(al[i][1]); read(bl[i][0]); read(bl[i][1]); } pool_top=0; root=alloc(); for(int i=1;i<=n;i++){ range_add_p2(bl[i][1]+1,E91,al[i][1],-al[i][0]); range_add_p2(bl[i][0],bl[i][1]+1,al[i][1],al[i][1]); range_add_p2(1,bl[i][0],-al[i][0],al[i][1]); } int rl=0; int rr=0; int l=1; int r=E9; while(l>1; if(checkl(mid)){ r=mid; }else{ l=mid+1; } } rl=l; l=1; r=E9; while(l>1; if(checkr(mid)){ l=mid; }else{ r=mid-1; } } rr=l; for(int i=1;i<=n;i++){ arr[i-1]={bl[i][0],bl[i][1]}; } sort(arr,arr+n); int res=0; int lst=rl-1; for(int i=0;i=l){ res+=r-l+1; lst=r; } } writeln(res); } int main(){ freopen("lucky.in","r",stdin); freopen("lucky.out","w",stdout); // ios::sync_with_stdio(false); int c,t; read(c); read(t); for(int i=0;i