Pagini recente » Cod sursa (job #793866) | Cod sursa (job #1933839) | Cod sursa (job #2492814) | Cod sursa (job #735858) | Cod sursa (job #1373770)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("garaj.in");
ofstream fout("garaj.out");
int n,m,nr,t,sum,st,dr,sol,i,mij,a[100001];
struct virgula{
int x,y,z;
}v[100001];
int verif(int val)
{
int sol=0;
for(i=1;i<=n;i++)
{
sol+=v[i].x*(val/v[i].y);
if(sol>=m)
return 1;
}
return sol>=m;
}
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)
{
mij=(st+dr)/2;
if(verif(mij))
{
sol=mij;
dr=mij-1;
}
else
st=mij+1;
}
fout<<sol<<' ';
for(i=1;i<=n;i++)
a[i]=v[i].x*(sol/v[i].y);
sort(a+1,a+n+1);
sol=0;
for(i=n;i>=1;i--)
{
sol+=a[i];
nr++;
if(sol>=m)
break;
}
fout<<nr;
return 0;
}