Pagini recente » Cod sursa (job #515885) | Cod sursa (job #482705) | Cod sursa (job #42309) | Cod sursa (job #1136350) | Cod sursa (job #2381992)
#include <fstream>
#include <algorithm>
#define TMAX 1000000000
#define NMAX 100050
using namespace std;
ifstream f("garaj.in");
ofstream g("garaj.out");
int n,x,i,k,sum;
int c[NMAX],t[NMAX],v[NMAX];
int cautbin()
{
int i=1,j=TMAX,mij=0,ok=0,s=0;
while(i<=j)
{
mij=(i+j)/2;ok=0;s=0;
for(int o=1;o<=n;o++)
{
s+=c[o]*(mij/t[o]);
if(s>=x)
ok=1;
}
if(ok==1)
j=mij-1;
else
i=mij+1;
}
return i;
}
int main()
{
f>>n>>x;
for(i=1;i<=n;i++)
f>>c[i]>>t[i];
k=cautbin();
g<<2*k<<" ";
for(i=1;i<=n;i++)
v[i]=c[i]*(k/t[i]);
sort(v+1,v+1+n);
for(i=n;i>=1;i--)
{
sum+=v[i];
if(sum>x)
{
g<<n-i+1;
return 0;
}
}
}