Pagini recente » Cod sursa (job #2128287) | Cod sursa (job #523122) | Cod sursa (job #1500987) | Cod sursa (job #757862) | Cod sursa (job #479169)
Cod sursa(job #479169)
#include<fstream>
#include<algorithm>
#define camion pair<int,int>
#define x first
#define y second
using namespace std;
const char iname[]="garaj.in";
const char oname[]="garaj.out";
const int maxn=100005;
ifstream f(iname);
ofstream g(oname);
camion a[maxn];
int n,i,m,step;
int many(int x)
{
long long s=0;
for(int i=1;i<=n;++i)
s+=a[i].x*(x/a[i].y);
if(s>(1<<30))
s=(1<<30);
return s;
}
int main()
{
f>>n>>m;
for(i=1;i<=n;++i)
f>>a[i].x>>a[i].y;
for(step=(1<<30),i=0;step;step>>=1)
{
i+=step;
if(many(i)>=m)
i-=step;
}
++i;
g<<i*2<<" ";
for(i=1;i<=n;++i)
a[i].x=(a[i].x*(i/a[i].y));
sort(a+1,a+n+1,greater<camion>());
for(i=1;i<=n&&m>0;++i)
m-=a[i].x;
--i;
g<<i<<"\n";
}