Cod sursa(job #3222515)

Utilizator redstonegamer22Andrei Ion redstonegamer22 Data 10 aprilie 2024 17:09:01
Problema Lupul Urias si Rau Scor 16
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

ifstream cin("lupu.in");
ofstream cout("lupu.out");

#define int long long
vector < int > dp;
vector < pair < int , int > > v;

signed main()
{
    int n,x,l,ans=0;
    cin>>n>>x>>l;
    dp.resize(n+1);
    v.resize(n+1);
    for(int i=1;i<=n;i++)
        cin>>v[i].first>>v[i].second;
    sort(v.begin()+1,v.end());
    for(int i=1;i<=n;i++)
    {
        if(v[i].first>x)
            break;
        int ax = (x - v[i].first)/l;
        pair < int , int > temp ={x- l*(ax+1) + 1,0ll};
        int x = lower_bound(v.begin()+1,v.begin()+i,temp)-v.begin();
        x--;
        dp[i]=max(dp[i-1],dp[x]+v[i].second);
        ans=max(ans,dp[i]);
    }
    cout<<ans;
    return 0;
}