Pagini recente » Cod sursa (job #2488344) | Cod sursa (job #2596302) | Cod sursa (job #1055801) | Cod sursa (job #2851883) | Cod sursa (job #1375835)
#include <fstream>
#include <algorithm>
#include <limits.h>
using namespace std;
ifstream f("garaj.in");
ofstream g("garaj.out");
struct ga{
int x,y;}v[100001];
int n,i,sol,st,dr,d[100001],S,nr;
long long mij,s;
int main()
{
f>>n>>S;
for(i=1;i<=n;i++){
f>>v[i].x>>v[i].y;
v[i].y=v[i].y*2;}
st=1;dr=2000000000;
while(st<=dr){
mij=(st+dr)/2;
s=0;
for(i=1;i<=n;i++)
s+=v[i].x*(mij/v[i].y);
if(s>=S)
{
dr=mij-1;
sol=mij;
}
else
st=mij+1;
}
g<<sol<<" ";
for(i=1;i<=n;i++)
d[i]=v[i].x*(sol/v[i].y);
sort(d+1,d+n+1);
s=0;
for(i=n;i>=1;i--){
s+=d[i];
nr++;
if(s>=S)
{
g<<nr;
break;
}}
return 0;
}