rt,不仅T飞,还全WA,样例都没过,求教
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 100005;
int n;
int cnt;
int res;
struct Kano
{
int a, b, c;
}g[N];
struct node
{
int t, pri;
bool st;
}sale[N];
bool cmp(node a, node b)
{
if (a.t == b.t) return a.pri < b.pri;
return a.t < b.t;
}
int main()
{
scanf("%d", &n);
for (int i = 1; i <= n; i ++ )
{
scanf("%d%d%d", &g[i].a, &g[i].b, &g[i].c);
res += g[i].b;
if (g[i].a == 0) sale[++ cnt].t = g[i].c, sale[cnt].pri = g[i].b, sale[cnt].st = 1;
}
for (int i = 1; i <= n; i ++ )
{
if (g[i].a == 0) continue;
if (!cnt) break;
sort(sale + 1, sale + cnt + 1, cmp);
int k = -1;
for (int j = 1; j <= cnt; j ++ )
if (sale[j].pri >= g[i].b && abs(sale[j].t - g[i].c) <= 45 && sale[j].st)
{
k = j;
sale[k].st = 0;
break;
}
if (k == -1) continue;
res -= g[i].b;
swap(sale[k], sale[cnt]);
cnt -- ;
}
printf("%d\n", res);
return 0;
}