Cod sursa(job #3267308)

Utilizator Raul_AArdelean Raul Raul_A Data 11 ianuarie 2025 10:48:54
Problema Lupul Urias si Rau Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.39 kb
#include <bits/stdc++.h>
#define ll long long
#define int ll
#define ld long double
#define pii pair<int, int>
#define tpl tuple<int, int, int>
#define piv pair<int, vector<int>>
#define eb emplace_back
#define oo INT_MAX / 2
#define OO LLONG_MAX / 2
using namespace std;

const string fn("lupu");

ifstream in(fn + ".in");
ofstream out(fn + ".out");

#define cin in
#define cout out

int N,X,L;
priority_queue<pii> pq;
bitset<1005> vis;

void solve()
{
    cin>>N>>X>>L;

    vector<pii> v(N);

    for(auto &x: v)
        cin>>x.first>>x.second;
    
    sort(v.begin(),v.end(),[](pii a,pii b){
        if(a.second<b.second)
            return 0;
        if(a.second==b.second)
        {
            if(a.first<b.first)
                return 1;
            return 0;
        }
        return 1;
    });

    int ans=0;
    for(int t=0,ok;ok;t++)
    {
        ok=0;
        int i=-1;
        for(auto x: v)
        {
            i++;
            if(vis[i])
                continue;
            ///cout<<t*L+x.first<<' '<<x.second<<' '<<X<<'\n';
            if(t*L+x.first<=X)
            {
                ans+=x.second;
                ok=1;
                vis[i]=1;
                break;
            }
        }
    }

    cout<<ans;
}

signed main()
{
    int q = 1;

    /// cin >> q;
    while (q--)
        solve();
    return 0;
}