Pagini recente » Cod sursa (job #2129172) | Cod sursa (job #1731978) | Cod sursa (job #70656) | Cod sursa (job #2752270) | Cod sursa (job #1112168)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("garaj.in");
ofstream g("garaj.out");
long long n, m, i, s, d, p, u, mi;
struct camion{
long long s, t;
} v[100010];
bool verif(long long t){
s=0;
for(i=1; i<=n; i++)
{
d=t/(v[i].t*2);
s+=v[i].s*d;
}
if(s>=m)
return 1;
return 0;
}
bool cmp(camion x, camion y){
return ( (x.s/x.t)>(y.s/y.t) );
}
int main(){
f>>n>>m;
for(i=1; i<=n; i++)
f>>v[i].s>>v[i].t;
sort(v+1, v+n+1, cmp);
p=1;
u=2000000000;
while(p<=u)
{
mi=(p+u)/2;
if( verif(mi) )
u=mi-1;
else
p=mi+1;
}
s=0;
for(i=1; i<=n; i++)
{
d=p/(v[i].t*2);
s+=v[i].s*d;
if(s>=m)
break;
}
g<<p<<' '<<i<<"\n";
return 0;
}