Cod sursa(job #3252852)

Utilizator ElideMaria Popescu Elide Data 31 octombrie 2024 12:52:05
Problema Lupul Urias si Rau Scor 12
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

struct oaie
{
    long long lana, dist;
}v[100005];

bool comp(oaie a, oaie b)
{
    if(a.dist > b.dist)
    {
        return 0;
    }
    if(a.dist < b.dist)
    {
        return 1;
    }
    if(a.dist == b.dist)
    {
        if(a.lana >= b.lana)
        {
            return 1;
        }
        return 0;
    }
}

int main()
{
    long long suma = 0;
    int n, i, dist_max, dist_fug;
    in >> n >> dist_max >> dist_fug;
    for(i = 1; i <= n; i++)
    {
        in >> v[i].dist >> v[i].lana;
        v[i].dist /= dist_fug;
    }
    sort(v + 1, v + 1 + n, comp);
    for(i = 1; i <= n; i++)
    {
        if(v[i].dist * dist_fug > dist_max)
        {
            break;
        }
        suma += v[i].lana;
        while(v[i].dist == v[i+1].dist)
        {
            i++;
        }
    }
    out << suma;
    return 0;
}