Pagini recente » Cod sursa (job #1200622) | Cod sursa (job #2312200) | Cod sursa (job #640779) | Cod sursa (job #2712011) | Cod sursa (job #1392863)
#include <fstream>
#include <algorithm>
#define nmax 100005
using namespace std;
ifstream f("garaj.in");
ofstream g("garaj.out");
struct camion{int c;int t;} v[nmax];
int n,m,sol;
int check(int k)
{
int i;
long long r=m;
for (i=1;i<=n;i++)
{r-=1LL*(k/2/v[i].t)*v[i].c;
if (r<=0)
return r;
}
return r;
}
bool cmp(const camion &a,const camion &b)
{
return (a.c/a.t)>(b.c/b.t);
}
int main()
{
int i,j,k=0;
f>>n>>m;
for (i=1;i<=n;i++)
f>>v[i].c>>v[i].t;
for (int p=1<<30;p;p=p>>=1)
if (check(p+sol)>=0)
sol+=p;
sol++;
g<<sol<<' ';
sort(v+1,v+n+1,cmp);
for (i=1;i<=n;i++) {
k++;
m-=(sol/2/v[i].t)*v[i].c;
if (m<=0)
break;
}
g<<k<<'\n';
return 0;
}