Cod sursa(job #941112)

Utilizator CostanMiriamCostan Miriam CostanMiriam Data 17 aprilie 2013 22:51:35
Problema Garaj Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin ("garaj.in");
ofstream fout ("garaj.out");
struct camioane {
    int a;
    int b;
};
camioane v[100010];
int n,m,i,j,p,u,mij,nrc,a[100010],ok,t;

int main () {
    fin>>n>>m;
    for (i=1;i<=n;i++)
        fin>>v[i].a>>v[i].b;
    p=1;u=2*m;
    while (p<=u) {
        mij=p+(u-p)/2; t=mij; ok=0;
        j=m;
        for(i=1; i<=n; i++){
            j-=(t/(v[i].b<<1))*v[i].a;
            if(j<1) ok=1;
        }
        if (ok==1)
            u=mij-1;
        else
            p=mij+1;
    }
    fout<<p<<" ";
    for(i=1; i<=n; i++)
        a[i]=(p/(v[i].b<<1))*v[i].a;
    sort(a+1, a+n+1);
    nrc=0;
    j=m;
    for(i=n;i>0;i--){
        j -= a[i];
        nrc++;
        if(j<1) break;
    }
    fout<<nrc<<"\n";

    return 0;
}