diff --git a/src/9/4/P7992.cpp b/src/9/4/P7992.cpp new file mode 100644 index 0000000..6356c28 --- /dev/null +++ b/src/9/4/P7992.cpp @@ -0,0 +1,33 @@ +#include +#include +#include +#include +using ll = int64_t; + + +int main(){ + std::iostream::sync_with_stdio(false); + std::cin.tie(nullptr); + + ll n,m; + std::cin>>n>>m; + std::vector va(m+1),vb(m+1); + for(ll i=1;i<=n;i++){ + ll a,b; + std::cin>>a>>b; + va[a]++; + vb[b]++; + } + std::vector pre(2*m+2); + for(ll i=0;i<=m;i++){ + for(ll j=0;j<=m;j++){ + pre[i+j]+=va[i]*va[j]; + pre[i+j+1]-=vb[i]*vb[j]; + } + } + ll ans=0; + for(ll i=0;i<=2*m;i++){ + ans+=pre[i]; + std::cout< +#include +#include +#include +using ll = int64_t; + +struct BT{ + const ll size; + std::vector t; + static inline ll lb(ll n){ + return n&(-n); + } + BT(ll size):size(++size),t(size+1){ + + } + inline void upd(ll idx,ll add){ + while(idx<=size){ + t[idx]+=add; + idx+=lb(idx); + } + } + inline ll get(ll idx){ + ll res=0; + while(idx){ + res+=t[idx]; + idx-=lb(idx); + } + return res; + } +}; + +int main(){ + std::ios_base::sync_with_stdio(false); + std::cin.tie(nullptr); + + ll n,m; + std::cin>>n>>m; + BT s(n),e(n); + for(ll i=1;i<=m;i++){ + ll k,l,r; + std::cin>>k>>l>>r; + if(k==1){ + s.upd(l, 1); + e.upd(r, 1); + }else{ + ll nans= + s.get(r) - e.get(l-1); + + std::cout<