162832025-04-20 09:59:29horkaFőnökszámcpp17Runtime error 15/10096ms8628 KiB
#include <bits/stdc++.h>
using namespace std;
//#define int long long
#define all(x) x.begin(),x.end()
#define pb push_back
#define sz(x) (int)x.size()
const int c=10005;
int mx[4*c];
array<int, 3> mn[4*c];
map<int, int> val[4*c];
const int inf=1e8,minf=-500;
const array<int, 3> nagy{inf,-1};
array<int, 3> combine(array<int, 3> a, array<int, 3> b)
{
    array<int, 3> x;
    x[0]=min(a[0],b[0]);
    if(a[0]<b[0]) x[1]=a[1],x[2]=a[2];
    else x[1]=b[1],x[2]=b[2];
    return x;
}
void valt(int cs, int pos)
{
    mn[cs][1]=pos;
    mn[cs][2]=cs;
    if(val[cs].empty())
    {
        mn[cs][0]=inf,mx[cs]=minf;
    }
    else
    {
        mn[cs][0]=val[cs].begin()->first;
        mx[cs]=val[cs].rbegin()->first;

    }
}
void be(int cs, int tl, int tr, int pos, int ert)
{
    if(tl==tr)
    {
        val[cs][ert]++;
        valt(cs,pos);
        return;
    }
    int mid=(tl+tr)/2;
    if(pos<=mid) be(2*cs,tl,mid,pos,ert);
    else be(2*cs+1,mid+1,tr,pos,ert);
    mn[cs]=combine(mn[2*cs],mn[2*cs+1]);
    mx[cs]=max(mx[2*cs],mx[2*cs+1]);
}
int mxquery(int cs, int tl, int tr, int l, int r)
{
    if(l>r) return minf;
    if(l==tl && r==tr) return mx[cs];
    int mid=(tl+tr)/2;
    return max(mxquery(2*cs,tl,mid,l,min(r,mid)),mxquery(2*cs+1,mid+1,tr,max(mid+1,l),r));
}
array<int, 3> mnquery(int cs, int tl, int tr, int l, int r)
{
    if(l>r) return nagy;
    if(l==tl && r==tr) return mn[cs];
    int mid=(tl+tr)/2;
    return combine(mnquery(2*cs,tl,mid,l,min(r,mid)),mnquery(2*cs+1,mid+1,tr,max(mid+1,l),r));
}
void ki(int cs, int tl, int tr, int pos)
{
    if(tl==tr)
    {
        int x=val[cs].begin()->first;
        val[cs][x]--;
        if(val[cs][x]==0) val[cs].erase(x);
        valt(cs,pos);
        return;
    }
    int mid=(tl+tr)/2;
    if(pos<=mid) ki(2*cs,tl,mid,pos);
    else ki(2*cs+1,mid+1,tr,pos);
    mx[cs]=max(mx[2*cs],mx[2*cs+1]);
    mn[cs]=combine(mn[2*cs],mn[2*cs+1]);
}
int main()
{
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    for(int i=0; i<4*c; i++)
        mn[i][0]=inf,mx[i]=minf;
    int n; cin>>n;
    vector<int> pontok;
    vector<array<int, 2>> v(n);
    for(auto &[a,b]:v)
    {
        cin>>a>>b;
        pontok.push_back(a);
        pontok.push_back(b);
    }
    sort(all(pontok));
    pontok.erase(unique(all(pontok)),pontok.end());
    for(auto &[a,b]:v)
    {
        a=lower_bound(all(pontok),a)-pontok.begin();
        b=lower_bound(all(pontok),b)-pontok.begin();
    }
    int mer=sz(pontok)-1;
    int cnt=0;
    for(auto &[a,b]:v)
    {
        if(mxquery(1,0,mer,a+1,mer)>b)
        {
            cout<<cnt<<"\n";
            continue;
        }
        be(1,0,mer,a,b);
        cnt++;
        while(1)
        {
            array<int, 3> x=mnquery(1,0,mer,0,a-1);
            if(x[0]>=b) break;
            ki(1,0,mer,x[1]);
            cnt--;
        }
        cout<<cnt<<"\n";
    }
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted3ms2708 KiB
2Runtime error79ms5804 KiB
subtask25/5
3Accepted3ms2868 KiB
4Accepted3ms2868 KiB
5Accepted4ms3060 KiB
6Accepted12ms3124 KiB
subtask310/10
7Accepted3ms2868 KiB
8Accepted3ms2868 KiB
9Accepted3ms2868 KiB
10Accepted3ms2868 KiB
11Accepted4ms2872 KiB
12Accepted4ms2868 KiB
13Accepted6ms2868 KiB
14Accepted8ms3124 KiB
subtask40/10
15Accepted4ms2872 KiB
16Accepted3ms3060 KiB
17Accepted4ms2868 KiB
18Accepted4ms2868 KiB
19Accepted10ms3252 KiB
20Runtime error14ms3620 KiB
21Runtime error14ms3588 KiB
22Runtime error39ms5632 KiB
subtask50/25
23Accepted4ms2868 KiB
24Accepted4ms3060 KiB
25Accepted6ms2868 KiB
26Accepted7ms3308 KiB
27Runtime error39ms4312 KiB
28Runtime error63ms5412 KiB
29Runtime error78ms5704 KiB
30Runtime error79ms5788 KiB
subtask60/50
31Accepted4ms2868 KiB
32Runtime error78ms4780 KiB
33Accepted3ms2868 KiB
34Accepted3ms2868 KiB
35Accepted4ms3060 KiB
36Accepted12ms3124 KiB
37Accepted3ms2868 KiB
38Accepted3ms2868 KiB
39Accepted3ms2868 KiB
40Accepted3ms2868 KiB
41Accepted4ms2872 KiB
42Accepted4ms2868 KiB
43Accepted6ms2868 KiB
44Accepted8ms3124 KiB
45Accepted4ms2872 KiB
46Accepted3ms3060 KiB
47Accepted4ms2868 KiB
48Accepted4ms2868 KiB
49Accepted10ms3252 KiB
50Runtime error14ms3620 KiB
51Runtime error14ms3588 KiB
52Runtime error39ms5632 KiB
53Accepted4ms2868 KiB
54Accepted4ms3060 KiB
55Accepted6ms2868 KiB
56Accepted7ms3308 KiB
57Runtime error39ms4312 KiB
58Runtime error63ms5412 KiB
59Runtime error78ms5704 KiB
60Runtime error79ms5788 KiB
61Accepted7ms3128 KiB
62Accepted9ms3112 KiB
63Accepted7ms3124 KiB
64Runtime error21ms4248 KiB
65Accepted7ms3124 KiB
66Accepted7ms3176 KiB
67Accepted7ms3124 KiB
68Accepted7ms3128 KiB
69Accepted78ms5552 KiB
70Runtime error96ms8628 KiB