Cod sursa(job #1375745)

Utilizator GinguIonutGinguIonut GinguIonut Data 5 martie 2015 14:13:00
Problema Garaj Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("garaj.in");
ofstream fout("garaj.out");
int st,dr,m,n,i,solv,mijl,solv1,vect[100001];
long int sum;
struct str
{
    int x;
    int y;
}v[100001];
int verif(int val)
{
    long int sol=0;
    for(i=1;i<=n;i++)
    {
        sol+=1ll*v[i].x*(val/v[i].y);
        if(sol>=1ll*m)
            return 1;
    }
    return 0;
}
int main()
{
fin>>n>>m;
for(i=1;i<=n;i++)
{
    fin>>v[i].x>>v[i].y;
    v[i].y*=2;
}
st=1;
dr=2000000000;
while(st<=dr)
{
    mijl=(st+dr)/2;
    if(verif(mijl))
    {
        solv=mijl;
        dr=mijl-1;
    }
    else
        st=mijl+1;
}
fout<<solv<<" ";
for(i=1;i<=n;i++)
    vect[i]=v[i].x*(solv/v[i].y);
sort(vect+1,vect+n+1);
for(i=n;i>=1;i--)
{
    sum+=vect[i];
    solv1++;
    if(sum>=m)
        break;
}
fout<<solv1;
    return 0;
}