Cod sursa(job #1098593)

Utilizator NaniteNanite Nanite Data 4 februarie 2014 22:05:21
Problema Secventa 3 Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <cstdio>
#include <algorithm>

const int maxL = 30000, maxU = maxL, maxN = maxL;
int L, U, N;
float answer;

struct item {
    int price, time;
    float value() {
        return (float)price/time;
    }
}items[maxU];

void read() {
    scanf("%i%i%i", &N, &L, &U);
    for(int i = 0; i < N; i++) {
        scanf("%i", &items[i].price);
    }
    for(int i = 0; i < N; i++) {
        scanf("%i", &items[i].time);
    }
}

bool cmp(item a, item b) {
    return a.value() > b.value();
}

void process() {
    std::sort(items, items+N, cmp);
    int priceBuffer = 0, timeBuffer = 0;
    for(int i = 0; i < L; i++) {
        priceBuffer += items[i].price;
        timeBuffer += items[i].time;
    }
    answer = (float)priceBuffer/timeBuffer;
}

void write() {
    printf("%.2f", answer);
}

int main() {
    freopen("secv3.in", "r", stdin);
    freopen("secv3.out", "w", stdout);

    read();
    process();
    write();


    return 0;
}