如题,下了第6个点发现多了一种情况,这就很难受了,手玩没玩出来,静态查也查不出,不知道多在哪里
代码如下,求教
#include <iostream>
using namespace std;
int n, k, p;
int color[200009], price[200009], cortmp[59][200009], cnt[59], tmp;
bool ext = false;
unsigned long long ans;
int main() {
cin >> n >> k >> p;
for (int i = 1; i <= n; ++i) {
cin >> color[i] >> price[i];
}
for (int i = 1; i <= n; ++i) {
if (!cnt[color[i]]) cortmp[color[i]][++cnt[color[i]]] = i;
else {
cortmp[color[i]][++cnt[color[i]]] = i;
for (int j = cnt[color[i]] - 1; j >= 1; --j) {
for (int k = cortmp[color[i]][j]; k <= cortmp[color[i]][j + 1]; ++k) {
if (price[k] <= p) {
tmp = j;
ext = true;
break;
}
}
if (ext) {
ext = !ext;
break;
}
}
ans += tmp;
}
}
cout << ans;
return 0;
}