Cod sursa(job #1113788)

Utilizator CostanMiriamCostan Miriam CostanMiriam Data 20 februarie 2014 21:55:37
Problema Garaj Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream fin ("garaj.in");
ofstream fout ("garaj.out");

struct camion {
    int c;
    int t;
}v[100010];

int n,m,i,p,u,nrmin,mij,a[100010];

int verifica (int t) {
     int j=m;
     for (int i=1;i<=n;i++) {
        j-=t/(v[i].t*2) *v[i].c;
        if (j<1)
            return 1;
     }
     return 0;
}

int main () {

    fin>>n>>m;
    for (i=1;i<=n;i++)
        fin>>v[i].c>>v[i].t;

    p=1;u=2*m;

    while (p<=u) {
        mij=(p+u)/2;

        if (verifica(mij))
            u=mij-1;
        else
            p=mij+1;
    }

    fout<<p<<" ";

    for (i=1;i<=n;i++)
        a[i]=p/(v[i].t*2)*v[i].c;
    sort (a+1,a+n+1);
    i=n;
    while (m>=1 && i!=1) {
        nrmin++;
        m-=a[i--];
    }
    fout<<nrmin<<"\n";
    return 0;
}