Pagini recente » Cod sursa (job #1265198) | Cod sursa (job #2655806) | Cod sursa (job #2747872) | Cod sursa (job #243034) | Cod sursa (job #1646702)
#include <cstdio>
#include <algorithm>
using namespace std;
#define MAXN 100000
int cost[MAXN],timp[MAXN],v[MAXN],m;
inline int cauta(int t,int n){
int i,s=0;
for(i=n-1;i>=0&&s<m;i--)
s=s+cost[i]*(t/(timp[i]*2));
return s;
}
int main(){
FILE*fi,*fout;
int n,i,rez,pas,s,j;
fi=fopen("garaj.in" ,"r");
fout=fopen("garaj.out" ,"w");
fscanf(fi,"%d%d" ,&n,&m);
for(i=0;i<n;i++)
fscanf(fi,"%d%d" ,&cost[i],&timp[i]);
rez=0;
for(pas=1<<27;pas;pas>>=1)
if(cauta(rez+pas,n)<m)
rez+=pas;
rez++;
fprintf(fout,"%d " ,rez);
for(i=0;i<n;i++)
v[i]=cost[i]*(rez/(2*timp[i]));
sort(v,v+n);
s=j=0;
i=n-1;
while(s<m){
s=s+v[i];
j++;
i--;
}
fprintf(fout,"%d" ,j);
fclose(fi);
fclose(fout);
return 0;
}