Pagini recente » Cod sursa (job #856035) | Cod sursa (job #903297) | Cod sursa (job #1091861) | Cod sursa (job #2438716) | Cod sursa (job #1392858)
#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;
long long check(int k)
{
int i;
long long r=0;
for (i=1;i<=n;i++)
r+=1LL*(k/2/v[i].t)*v[i].c;
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<<20;p;p=p>>=1)
if (check(p+sol)<m)
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;
}