Cod sursa(job #962471)

Utilizator costinbanuCostin Banu costinbanu Data 15 iunie 2013 12:10:52
Problema Lupul Urias si Rau Scor 8
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;

typedef vector < pair < long, long > > OI;
typedef pair < int, int > OAIE;

OI turma;

int n, x, l, p, q, d;
long long sum;

inline bool cmp(OAIE a, OAIE b){
    return (a.first+a.second == b.first+b.second) ? (a.first > b.first)  : (a.first+a.second > b.first+b.second);
}

int main(){
    FILE *in = fopen("lupu.in", "r"), *out = fopen("lupu.out", "w");
    if (in && out){
        fscanf(in, "%d %d %d\n", &n, &x, &l);
        for(int i = 0; i < n; i++)
            fscanf(in, "%d %d\n", &p, &q),
            turma.push_back(OAIE(p, q));
        sort(turma.begin(), turma.end(), cmp);
        for (int i = 0; i < n; i++){
            if (turma[i].first + d <= x) sum += turma[i].second, d += l;
        }
        fprintf(out, "%lld", sum);
        fclose(in), fclose(out);
    }
    return 0;
}