选择客栈

这个题,因为他没有说两个人的顺序对答案有影响,所以我们可以考虑固定一个人为右端点,记录最靠近这个右端点的人的可以去的咖啡店

如果说这个点大于这种颜色的客栈,那么就可以在之前的颜色中乱选,就是可以把之前有的所有这个颜色的客栈记为贡献

好像就口胡完了

#include <cstdio>

const int Maxn = 2e5 + 5;
int N, K, P, Now;
int Ans, Color, Price;
int Last[Maxn], Sum[Maxn], Cnt[Maxn];

int main()
{
    scanf("%d %d %d", &N, &K, &P);
    for (int i = 0; i < N; ++i)
    {
        scanf("%d %d", &Color, &Price);
        if (Price <= P)Now = i;
        if (Now >= Last[Color])Sum[Color] = Cnt[Color];
        Last[Color] = i;
        Ans += Sum[Color];
        ++Cnt[Color];
    }
    printf("%d\n", Ans);
}