Pagini recente » Cod sursa (job #209123) | Cod sursa (job #1985085) | Cod sursa (job #467392) | Cod sursa (job #652897) | Cod sursa (job #1113788)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin ("garaj.in");
ofstream fout ("garaj.out");
struct camion {
int c;
int t;
}v[100010];
int n,m,i,p,u,nrmin,mij,a[100010];
int verifica (int t) {
int j=m;
for (int i=1;i<=n;i++) {
j-=t/(v[i].t*2) *v[i].c;
if (j<1)
return 1;
}
return 0;
}
int main () {
fin>>n>>m;
for (i=1;i<=n;i++)
fin>>v[i].c>>v[i].t;
p=1;u=2*m;
while (p<=u) {
mij=(p+u)/2;
if (verifica(mij))
u=mij-1;
else
p=mij+1;
}
fout<<p<<" ";
for (i=1;i<=n;i++)
a[i]=p/(v[i].t*2)*v[i].c;
sort (a+1,a+n+1);
i=n;
while (m>=1 && i!=1) {
nrmin++;
m-=a[i--];
}
fout<<nrmin<<"\n";
return 0;
}