BRAINOOO / hell

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

#include <bits/stdc++.h> #include #define sz(v) ((int)(v).size()) #define eps 0.00000000000001 #define all(v) ((v).begin()),((v).end()) #define allr(v) ((v).rbegin()),((v).rend()) #define pb push_back #define mp make_pair #define inf 0x7fffffff #define PI 3.1415926536 #define clr(v,d) memset( v, d ,sizeof(v)) #define vi vector #define vd vector #define vvi vector< vector > #define vvpi vector< vector< pair<int,int> > > #define vvd vector< vector > #define vs vector #define vvs vector< vector > #define vc vector #define vpi vector< pair<int ,int> > #define pi pair<int ,int> #define pll pair<long long ,long long> #define vpd vector< pair<double ,double> > #define vpll vector< pair<long long ,long long> > #define vll vector #define dqi deque< int > #define si set #define spi set< pair<int ,int > > #define row vector< ll > #define matrix vector< row > #define lp(i,n) for(i=0;i<n;i++) #define si set #define oo 100000000000 #define MOD 1000000007 #define X real #define Y imag #define angle(n) atan2((n.imag()),(n.real())) #define vec(a,b) ((b)-(a)) #define length(a) hypot( (a.imag()),(a.real()) ) #define normalize(a) (a)/(length(a)) #define dp(a,b) (((conj(a))(b)).real()) #define cp(a,b) (((conj(a))(b)).imag()) #define lengthsqrt(a) dp(a,a) #define rotate0( a,ang) ((a)exp( point(0,ang) )) #define rotateA(about,p,ang) (rotate0(vec(about,p),ang)+about) #define lcm(a,b) ((ab)/(__gcd(a,b))) #define reflection0(m,v) (conj((v)/(m))*(m)) #define reflectionA(m,v,p0) (conj( (vec(p0,v))/(vec(p0,m)) ) * (vec(p0,m)) ) + p0 #define same(p1,p2) ( dp( vec(p1,p2),vec(p1,p2)) < eps ) #define point complex #define scani(n) scanf("%d",&n) #define scanll(n) scanf("%I64d",&n) #define printi(n) printf("%d",n) #define printll(n) printf("%I64d",n) #define scand(n) scanf("%lf",&n) #define printd(n) printf("%lf",n) #define scans(n) scanf("%s",&n) #define prints(n) printf("%s",n) typedef long long ll ; typedef unsigned long long ull; using namespace std; int dcmp(double a,double b){ return fabs(a-b)<=eps ? 0: (a>b)? 1:-1 ;}

int main() {

cin>>n>>q;

while(q--)
{

    cin>>ty>>no;

    if(ty==1)
    {

        b[no]++;
        c[no]++;
        a[++t]=no;

        sol++;

    }
    else if(ty==2)
    {

        sol-=b[no];
        b[no]=0;

    }
    else
    {

        while(m<no)
        {

          if( c[a[++m]])
            c[a[m]]--;

          if(b[a[m]]>c[a[m]])
          {
             b[a[m]]--;
             t--;
           }

        }
    }

    cout<<t<<endl;
}

}

About