题目:https://www.luogu.org/problemnew/show/P1311

看每个位置能否成为咖啡店,然后作为客栈和前面配对即可。

代码如下:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int const xn=2e5+5,xm=55;
int n,k,p,cn[xm],sum[xm],ans;
int rd()
{
    int ret=0,f=1; char ch=getchar();
    while(ch<'0'||ch>'9'){if(ch=='-')f=0; ch=getchar();}
    while(ch>='0'&&ch<='9')ret=(ret<<3)+(ret<<1)+ch-'0',ch=getchar();
    return f?ret:-ret;
}
int main()
{
    n=rd(); k=rd(); p=rd();
    for(int i=1,col,v;i<=n;i++)
    {
        col=rd(); v=rd(); sum[col]++;
        if(v<=p)
        {
            for(int j=0;j<k;j++)cn[j]=sum[j];
            ans+=sum[col]-1;
        }
        else ans+=cn[col];
    }
    printf("%d\n",ans);
    return 0;
}