Cod sursa(job #2960009)

Utilizator Luka77Anastase Luca George Luka77 Data 3 ianuarie 2023 13:56:49
Problema Lupul Urias si Rau Scor 8
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <bits/stdc++.h>
using namespace std;

/// INPUT / OUTPUT
ifstream fin("lupu.in");
ofstream fout("lupu.out");

/// GLOBAL VARIABLES
int n, x, l;
vector<pair<int,int>>v;

inline bool compare(pair<int,int>p1, pair<int,int>p2)
{
    if(p1.first == p2.first)
        return p1.second < p2.second;
    return p1.first + l <= p2.first;
}

/// SOLUTION
inline void solve()
{
    int ans = 0;
    //cout << '\n';
    sort(v.rbegin(), v.rend(), compare);
    //for(int i = 0; i < v.size(); ++ i)
    //{
        //cout << v[i].first << ' ' << v[i].second << '\n';
    //}
    for(int i = 0; i < v.size() -1 ; ++ i)
    {
        int val = x, sum = 0;
        for(int j = i; j < v.size(); ++ j)
        {
            if(x >= v[j].first)
                sum += v[j].second, x-=l;
        }
        x = val;
        ans = max(ans, sum);
    }
    fout << ans;
}

/// READING THE INPUT
int main()
{
    ios::sync_with_stdio(false);
    fin.tie(NULL);
    fout.tie(NULL);
    fin >> n >> x >> l;
    for(int i = 1; i <= n; ++ i)
    {
        int n1, n2;
        fin >> n1 >> n2;
        v.push_back({n1,n2});
    }
    solve();
}