Pagini recente » Cod sursa (job #237775) | Cod sursa (job #2484405) | Cod sursa (job #10038) | Cod sursa (job #50689) | Cod sursa (job #940829)
Cod sursa(job #940829)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("garaj.in");
ofstream g("garaj.out");
int n, m, i, j, p, u, t, v[100010], nrc, mid;
struct caminon{
int c, t;
} c[100010];
bool verif(const int &t){
j=m;
for(i=1; i<=n; i++)
{
j-=(t/(c[i].t<<1))*c[i].c;
if(j<1)
return 1;
}
return 0;
}
int main(){
f>>n>>m;
for(i=1; i<=n; i++)
f>>c[i].c>>c[i].t;
p=1;
u=2*m;
while(p<=u)
{
mid=p+(u-p)/2;
if( verif(mid) )
u=mid-1;
else
p=mid+1;
}
t=p;
g<<t<<' ';
for(i=1; i<=n; i++)
v[i]=(t/(c[i].t<<1))*c[i].c;
sort(v+1, v+n+1);
nrc=0;
j=m;
for(i=n; i>0; i--)
{
j-=v[i];
nrc++;
if(j<1)
break;
}
g<<nrc<<"\n";
return 0;
}