求助简单贪心 WA 15pts
查看原帖
求助简单贪心 WA 15pts
724958
lixuanyan楼主2022/5/11 21:49
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define maxn 2505
struct cow { int Max, Min; } SPF[maxn];
struct wat { int S, cover; } num[maxn];
int c, l;
int ans;

bool cmp(cow a, cow b) { return a.Max > b.Max; }
bool comp(wat a, wat b) { return a.S > b.S; }

bool check(int i, int j) {
    if (num[j].cover <= 0) return false;
    if (num[j].S > SPF[i].Max || num[j].S < SPF[i].Min) return false;
    return true;
}

signed main() {
    cin >> c >> l;
    for (int i = 1; i <= c; i++) cin >> SPF[i].Min >> SPF[i].Max;
    for (int i = 1; i <= l; i++) cin >> num[i].S >> num[i].cover;
    sort(SPF + 1, SPF + 1 + c, cmp), sort(num + 1, num + l + 1, comp);
    for (int i = 1; i <= c; i++) for (int j = 1; j <= l; j++) 
        if (check(i, j)) { num[j].cover--, ans++; break; }
    cout << ans << endl;
    return 0;
}

对着题解找错招半天都没找到/kk

2022/5/11 21:49
加载中...