Pagini recente » Cod sursa (job #403838) | Cod sursa (job #1119484) | Cod sursa (job #1188415) | Cod sursa (job #1271092) | Cod sursa (job #2093679)
#include <bits/stdc++.h>
#define Nmax 100001
#define tip pair <int,int>
#define c first
#define t second
using namespace std;
ifstream f("garaj.in");
ofstream g("garaj.out");
tip v[Nmax];
int ans;
inline bool cmp(const tip &x, const tip &y)
{
return (x.c*(ans/x.t))>(y.c*(ans/y.t));
}
int main()
{
int n,m,i;
f>>n>>m;
for(i=1;i<=n;i++)
{
f>>v[i].c>>v[i].t;
v[i].t<<=1;
}
int lsh=1,rsh=(int)1e9,mid,sum;
while(lsh<=rsh)
{
mid=(lsh+rsh)>>1;
sum=0;
for(i=1;i<=n;i++)
{
sum+=(v[i].c*(mid/v[i].t));
if(sum>=m) i=n+12;
}
if(i==n+13)
{
ans=mid;
rsh=mid-1;
}
else lsh=mid+1;
}
sort(v+1,v+n+1,cmp);
for(i=1;m>0;i++)
m-=(v[i].c*(ans/v[i].t));
g<<ans<<' '<<i-1;
return 0;
}