Pagini recente » Cod sursa (job #743965) | Cod sursa (job #408352) | Cod sursa (job #408311) | Cod sursa (job #1749627) | Cod sursa (job #1647873)
#include<stdio.h>
#include<algorithm>
using namespace std;
struct bine { int x ; int y ;};
bine v[100001],v2[100001];
bool sortare ( bine a , bine b ){
return a.x>b.x;
}
int main(){
int n,m,i,pp,l1,l2,s,poz,mid;
freopen("garaj.in","r",stdin);
freopen("garaj.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
scanf("%d%d",&v[i].x,&v[i].y);
l1=1;
l2=100000000;
while(l1<=l2){
mid=(l1+l2)/2;
s=0;
pp=1;
for(i=1;i<=n&&pp==1;i++){
s=s+mid/(v[i].y*2)*v[i].x;
if(s>=m)
pp=0;
}
if(s>=m){
poz=mid;
l2=mid-1;
}
else
l1=mid+1;
}
printf("%d ",poz);
for(i=1;i<=n;i++)
v2[i].x=poz/(2*v[i].y)*v[i].x;
sort(v2+1,v2+n+1,sortare);
pp=1;s=0;
for(i=1;i<=n&&pp==1;i++){
s+=v2[i].x;
if(s>=m){
printf("%d",i);
pp=0;
}
}
printf("\n");
return 0;
}