Pagini recente » Cod sursa (job #994924) | Cod sursa (job #1952750) | Cod sursa (job #1351909) | Cod sursa (job #1698128) | Cod sursa (job #1119972)
# include <fstream>
# include <algorithm>
using namespace std;
ifstream f("garaj.in");
ofstream g("garaj.out");
int TIMP,i,j,minn,n,M,VV;
struct elem
{
int c, timp;
}a[100005];
int cmp (elem x, elem y)
{
if (x.timp>=y.timp) return 0;
else return 1;
return 1;
}
void cb ()
{
int i,sum,ci=1,cs=1000,mij;
while (ci<=cs)
{
mij=(ci+cs)/2;
sum=0; VV=0;
for (i=1; i<=n; ++i)
{
++VV;
if (2*a[i].timp<=mij)
{
sum+=mij/(2*a[i].timp)*a[i].c;
}
else break;
if (sum>=M) break;
}
if (sum>=M) cs=mij-1;
else ci=mij+1;
if (sum>=M && mij<TIMP) TIMP=mij,minn=VV;
}
}
int main ()
{
f>>n>>M; TIMP=99999;
for (i=1; i<=n; ++i)
f>>a[i].c>>a[i].timp;
sort (a+1,a+n+1,cmp);
cb ();
g<<TIMP<<" "<<minn<<"\n";
return 0;
}