Pagini recente » Cod sursa (job #2221177) | Cod sursa (job #2661007) | Cod sursa (job #2764045) | Cod sursa (job #1573770) | Cod sursa (job #2396668)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("garaj.in");
ofstream g("garaj.out");
struct meme{
short int c,t;
}v[100001];
int a[100001];
int nr,i,n,m;
long long st,dr,mid,tmin,s,maxi,S;
bool verif(int x){
S=0;
for(i=1;i<=n;i++){
S+=v[i].c*(x/v[i].t);
if(S>=m)
return 1;
}
return 0;
}
int main()
{ f>>n>>m;
maxi=0;
for(i=1;i<=n;i++){
f>>v[i].c>>v[i].t;
v[i].t*=2;
if(maxi<(v[i].t)*(m/v[i].c))
maxi=(v[i].t)*(m/v[i].c);
}
st=1;dr=maxi;
while(st<=dr){
mid=(st+dr)/2;
if(verif(mid)==1){
dr=mid-1;
}
else
st=mid+1;
}
tmin=st;
g<<st<<' ';
for(i=1;i<=n;i++)
a[i]=v[i].c*(tmin/v[i].t);
sort(a+1,a+n+1);
s=0;nr=n;
while(s<m){
s+=a[nr];
nr--;
}
g<<n-nr;
return 0;
}