Pagini recente » Cod sursa (job #157803) | Cod sursa (job #2089064) | Cod sursa (job #1283607) | Cod sursa (job #2320044) | Cod sursa (job #901732)
Cod sursa(job #901732)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("garaj.in");
ofstream g("garaj.out");
int i,n,m,c,li,ls,mij,sol,v[100100];
struct cam{int c,t;};
cam a[100100];
int verif(int x)
{
int i;
int c=m;
for(i=1;i<=n;++i)
{
if(c-a[i].c*(x/a[i].t)<=0)
return 1;
c=c-a[i].c*(x/a[i].t);
}
return 0;
}
bool cmp(int a,int b)
{
return a>b;
}
int main()
{
f>>n>>m;
for(i=1;i<=n;++i)
{
f>>a[i].c>>a[i].t;
a[i].t*=2;
}
li=1;
ls=1<<25;
while(li<=ls)
{
mij=(li+ls)>>1;
if(verif(mij))
ls=mij-1,sol=mij;
else
li=mij+1;
}
g<<sol<<' ';
for(i=1;i<=n;++i)
{
v[i]=a[i].c*(sol/a[i].t);
}
sort(v+1,v+n+1,cmp);
c=0;
for(i=1;i<=n;++i)
{
c=c+v[i];
if(c>=m)
{
g<<i<<'\n';
return 0;
}
}
return 0;
}