本蒟蒻试着计算每个旅馆的贡献,没有T掉,但全WA了。。。
#include <iostream>
#include <vector>
using namespace std;
const int maxn = 2e5+5;
int n, k, p;
int a[maxn], b[maxn];
int pre[maxn];
vector<int> color[55];
int main() {
cin >> n >> k >> p;
for (int i = 1; i <= n; i++) {
cin >> a[i] >> b[i];
color[a[i]].push_back(i);
}
for (int i = 1; i <= n; i++) {
pre[i] = pre[i - 1] + (b[i] <= p);
}
int ans = 0;
for (int i = 0; i < k; i++) {
for (int j = 0; j < color[i].size() - 1; j++) {
ans += (j + 1) * (color[i].size() - j - 1) * (bool)(pre[color[i][j + 1]] - pre[color[i][j] - 1]);
}
}
cout << ans << endl;
return 0;
}