Pagini recente » Cod sursa (job #140574) | Cod sursa (job #2643335) | Cod sursa (job #2110030) | Cod sursa (job #926927) | Cod sursa (job #1798108)
#include <bits/stdc++.h>
#define MAX 2000000000
using namespace std;
ifstream f("garaj.in");
ofstream g("garaj.out");
int n,m,c,t=MAX,N,C[1<<17],T[1<<17];
int main()
{
f>>n>>m;
for(int i=1;i<=n;++i) f>>C[i]>>T[i],T[i]*=2;
for(int st=1,dr=MAX,mij=(st+dr)>>1;st<=dr;mij=(st+dr)>>1)
{
c=0;
for(int i=1;i<=n&&c<m;++i) c+=mij/T[i]*C[i];
if(c>=m) dr=mij-1,t=min(mij,t);
else st=mij+1;
}
for(int i=1;i<=n;++i)
T[i]=-(t/T[i]*C[i]);
sort(T+1,T+n+1);
for(N=c=0;N<n&&c<m;++N) c-=T[N+1];
g<<t<<' '<<N;
return 0;
}