Cod sursa(job #3169083)

Utilizator ioanabaduIoana Badu ioanabadu Data 14 noiembrie 2023 10:26:27
Problema Lupul Urias si Rau Scor 16
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#define N_MAX 100005

using namespace std;
ifstream in ("lupu.in");
ofstream out ("lupu.out");
int n, max_distance, rez_wool, rate;

struct sheep {
    int wool, distance;
}arr[N_MAX];

bool comp (sheep x, sheep y){
    if (x.wool > y.wool)
        return true;
    else if (x.wool == y.wool){
        if (x.distance > y.distance)
            return true;
        return false;
    }
    return false;
}

void solve (){
    for (int i=1; i<=n; ++i){
        if (arr[i].wool == max_distance){
            rez_wool += arr[i].distance;
            max_distance -= rate;
        }
    }
    out << rez_wool;
}

int main (){
    in >> n >> max_distance >> rate;
    for (int i=1; i<=n; ++i){
        in >> arr[i].wool >> arr[i].distance;
        if (arr[i].wool % rate != 0)
            arr[i].wool = (arr[i].wool / rate + 1) * rate;
    }
    sort (arr + 1, arr + n + 1, comp);
    solve ();
    return 0;
}