Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
123788 | 黄一航 | 选择客栈 | C++ | 通过 | 100 | 155 MS | 90132 KB | 740 | 2024-01-23 09:51:24 |
#include <bits/stdc++.h> #define int long long using namespace std; int sa[200005][55]; int a[200005],c[200005]; int n,k,p; deque<int> deq; void DEBUG(deque<int> deq) { while (deq.size()) { printf("%lld ",deq.front()); deq.pop_front(); } puts(""); } signed main() { // freopen("1.in","r",stdin); cin >> n >> k >> p; for (int i = 1; i <= n; i++) { cin >> a[i] >> c[i]; for (int j = 0; j < k; j++) sa[i][j] = sa[i - 1][j] + (j == a[i]); if (c[i] <= p) deq.push_back(i); } int cnt = 0; for (int i = 1; i <= n; i++) { if (!deq.size()) break; cnt += sa[n][a[i]] - sa[deq.front() - 1][a[i]]; if (i == deq.front()) deq.pop_front(),cnt--; } printf("%lld\n",cnt); return 0; }