Cod sursa(job #1202356)

Utilizator diana97Diana Ghinea diana97 Data 27 iunie 2014 19:20:11
Problema Lupul Urias si Rau Scor 4
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <algorithm>

using namespace std;

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

const int NMAX = 100000 + 1;

int n, x, l, t;
pair<int, int> v[NMAX];

void citeste () {
    f >> n >> x >> l;
    int a, b, j = 0;
    for (int i = 1; i <= n; i++) {
        f >> a >> b;
        if (a <= x) j++, v[j] = make_pair(a, b);
    }
    n = j;
}

bool conditie (pair <int, int> a, pair <int, int> b) {
    if (a.second > b.second) return true;
    if (a.second == b.second && a.first < b.second) return true;
    else return false;
}

void rezolva () {
    int k = 0;
    long long sol = 0;
    for (int i = 1; i <= n; i++) {
        if (v[i].first + k <= x) {
            sol += v[i].second;
            k += l;
        }
    }
    g << sol << '\n';
}

int main () {
    citeste ();
    sort (v + 1, v + n + 1, conditie);
    rezolva ();
    return 0;
}