Cod sursa(job #1119972)

Utilizator margikiMargeloiu Andrei margiki Data 24 februarie 2014 21:01:26
Problema Garaj Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
# include <fstream>
# include <algorithm>
using namespace std;
ifstream f("garaj.in");
ofstream g("garaj.out");
int TIMP,i,j,minn,n,M,VV;
struct elem
{
    int c, timp;
}a[100005];
int cmp (elem x, elem y)
{
    if (x.timp>=y.timp) return 0;
        else return 1;
    return 1;
}
void cb ()
{
    int i,sum,ci=1,cs=1000,mij;
    while (ci<=cs)
    {
        mij=(ci+cs)/2;
        sum=0; VV=0;
        for (i=1; i<=n; ++i)
        {
            ++VV;
            if (2*a[i].timp<=mij)
            {
                sum+=mij/(2*a[i].timp)*a[i].c;
            }
            else break;
            if (sum>=M) break;
        }
        if (sum>=M) cs=mij-1;
            else ci=mij+1;
        if (sum>=M && mij<TIMP) TIMP=mij,minn=VV;
    }
}
int main ()
{
    f>>n>>M; TIMP=99999;
    for (i=1; i<=n; ++i)
        f>>a[i].c>>a[i].timp;
    sort (a+1,a+n+1,cmp);
    cb ();
    g<<TIMP<<" "<<minn<<"\n";
    return 0;
}