Pagini recente » Cod sursa (job #2856654) | Cod sursa (job #587139) | Cod sursa (job #1366007) | Cod sursa (job #1794872) | Cod sursa (job #2396609)
#include <fstream>
#include <algorithm>
#define mod 666013
#define inf 1000000001
using namespace std;
ifstream f("garaj.in");
ofstream g("garaj.out");
struct meme{
int c,t;
}v[100001],a[100001];
int nr,i,n,m;
long long st,dr,mid,tmin,s,mini;
bool verif(int x){
long long S=0;
for(i=1;i<=n;i++){
S+=v[i].c*(x/v[i].t);
if(S>=m)
return 1;
}
return 0;
}
int cmp(meme a,meme b){
if(a.c==b.c)
return a.t<b.t;
return a.c>b.c;
}
int main()
{ f>>n>>m;
mini=inf;
for(i=1;i<=n;i++){
f>>v[i].c>>v[i].t;
v[i].t*=2;
if(mini>v[i].t)
mini=v[i].t;
}
mini=m*mini;
st=1;dr=mini;
while(st<=dr){
mid=(st+dr)/2;
if(verif(mid)==1){
dr=mid-1;
tmin=mid;
}
else
st=mid+1;
}
g<<tmin<<' ' ;
for(i=1;i<=n;i++){
a[i].c=v[i].c*(tmin/v[i].t);
a[i].t=i;
}
sort(a+1,a+n+1,cmp);
s=0;nr=0;
while(s<m){
s=s+a[++nr].c;
}
g<<nr;
return 0;
}