Cod sursa(job #3005041)

Utilizator stefanbejan07Bejan Stefan stefanbejan07 Data 16 martie 2023 19:02:59
Problema Lupul Urias si Rau Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <iostream>
#include <fstream>
#include <set>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
struct Sheep
{
    bool operator()(const pair < int, int > &A, const pair < int, int > &B)
    {
       if(A.first != B.first)
        return A.first > B.first;
       else
        return A.second < B.second;
    }
};
multiset < pair < int, int >, Sheep > Q;
int N, L, D;
void Read()
{
    fin >> N >> L >> D;
    for(int i = 1; i <= N; ++ i)
    {
        int A, B;
        fin >> A >> B;
        Q.insert(make_pair(B, A));
    }
}
void Task()
{
    int R = D;
    long long SUM = 0;
    for(multiset < pair < int, int > > :: iterator I = Q.begin(); I != Q.end(); I ++)
    {
        if(I == Q.begin())
            SUM += I -> first;
        else
            if(I -> second + D <= L)
        {
            D += R;
            SUM += I -> first;
        }
    }
    fout << SUM;
    fin.close();
    fout.close();
}
int main()
{
    Read();
    Task();
    return 0;
}