Pagini recente » Cod sursa (job #23390) | Cod sursa (job #1750163) | Cod sursa (job #2087329) | Cod sursa (job #882748) | Cod sursa (job #1113829)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("garaj.in");
ofstream g("garaj.out");
int i,n,m,st,dr,timp,a[100000],nrmin;
struct camion{
int c,t;
}v[100001];
int verif(int timp){
int j=m,i;
for(i=1;i<=n;i++){
j-=timp/(v[i].t*2)*v[i].c;
if(j<1)
return 1;
}
return 0;
}
int cmp (camion x, camion y){
if(x.t<y.t) return 1;
return 0;
}
int main()
{
f>>n>>m;
for(i=1;i<=n;i++)
f>>v[i].c>>v[i].t;
sort(v+1,v+n+1,cmp);
st=1;
dr=2*m;
while(st<=dr){
timp=(st+dr)/2;
if(verif(timp))
dr=timp-1;
else
st=timp+1;
}
g<<st<<" ";
for (i=1;i<=n;i++)
a[i]=st/(v[i].t*2)*v[i].c;
sort (a+1,a+n+1);
i=n;
while (m>=1 && i!=0) {
nrmin++;
m-=a[i--];
}
g<<nrmin<<"\n";
return 0;
}