Pagini recente » Cod sursa (job #939980) | Cod sursa (job #82834) | Cod sursa (job #2281432) | Cod sursa (job #2003637) | Cod sursa (job #1065792)
#include <algorithm>
#include <fstream>
#define PII pair<int, int>
#define x first
#define y second
using namespace std;
const int N=500005;
ifstream fin("garaj.in");
ofstream fout("garaj.out");
PII a[N];
int n, m;
bool verif(int t)
{
int i, s=m;
for(i=1;i<=n;i++)
{
s-=a[i].x*(t/a[i].y);
if(s<=0) return 1;
}
return 0;
}
int main()
{
int i, sol;
fin>>n>>m;
for(i=1;i<=n;i++)
{
fin>>a[i].x>>a[i].y;
a[i].y*=2;
}
for(i=(1<<30), sol=(1<<30)+1;i;i>>=1)
{
if(sol-i>0&&verif(sol-i)) sol-=i;
}
for(i=1;i<=n;i++) a[i].x*=sol/a[i].y;
sort(a+1, a+n+1);
for(i=n;;i--)
{
m-=a[i].x;
if(m<=0) break;
}
fout<<sol<<" "<<n-i+1;
fin.close();
fout.close();
}